Onblur,Onfocus javascript for TextMode =“MultiLine”无效

时间:2012-07-31 01:13:54

标签: javascript asp.net html

我有一个多行的asp.textbox输入控件。

我不知道我的问题是使用ASP.NET,Multiline控件还是别的,但onblur和onfocus不起作用。

<script type="text/javascript">
  var defaultMsg = 'Write your message here or or call my voice at (xxx) xxx-xxxx.';
  var controlMsg = doc.createElement("input");
  controlMsg.id = "txtMessage";
  controlMsg.type = "text";
  controlMsg.value = defaultMsg;
  controlMsg.onfocus=function jpFocus() { if (this.value == defaultMsg) this.value = ''; }
  controlMsg.onblur=function jpBlur() { if (this.value == '') this.value = defaultMsg; }
</script>

后来......

<asp:TextBox ID="txtMessage" Columns="30" Rows="6" runat="Server" TextMode="MultiLine" />

有没有人知道为什么这不起作用?

3 个答案:

答案 0 :(得分:1)

实际上,您正在创建一个html元素,并且您正在附加一个事件。 此外,ASP.NET控件不使用服务器端ID。 这是你应该做的:

var controlMsg = document.getElementById('<%= txtMessage.ClientID %>');
controlMsg.onfocus = // Some Code ...
controlMsg.onblur = // Some Code ...

答案 1 :(得分:1)

尝试使用匿名函数,如下所示:

controlMsg.onfocus=function() { if ( ...

Functions and function scope - MDN

另外,你确实打了document.body.appendChild(controlMsg);这样的话,不是吗?

修改

您正在使用doc.createElement。确保doc明确指向document

另外,请查看Firefox中的页面,查看错误控制台中是否有任何错误或警告。

答案 2 :(得分:0)

不确定您使用的是哪个版本。请试试这个:

protected void Page_Load(object sender, EventArgs e)  
 {
   txtMessage. Attributes["onfocus"]="JavascriptMethod";  
 }