2010-06-21 105 views
1

我有这个密码字段这个onload事件有什么问题?

input class="txtfld" type="password" id="TextBoxLoginPassword" runat="server" 
       value="password"  
       onfocus="javascript:if(this.value == 'password') this.value='';" 
       onblur="javascript:if(this.value == '') this.value='password';" 
       onload="javascript:if(this.value == '') this.value='password';" 
       validationgroup="Login" /> 

问题是,这似乎为空。即使我已经设置了一个默认值。 为了解决这个问题,我已经添加的onload事件,我得到以下错误

  1. 空字符文字
  2. 在字符文字 太多字符为什么这个出现在第一位空的,为什么我得到这些错误?我需要的是在密码字段中显示默认值。
+0

默认字段始终用于通知用户有关输入。为什么你想要一个默认的密码字段来显示为点? – rahul 2010-06-21 10:17:55

+0

@Amitabh如何? @Rahul Ihave只有用户名和密码字段。用户名是通知在这里输入用户名。所以一个空密码字段并不是那么好。并且每当用户看到点时,他都会明白这是密码。我没有任何与这些领域相关的标签。 – 2010-06-21 10:22:20

回答

1

的问题是在在onload结束“RUNAT =服务器”的文本的组合。 由于该runat属性,asp.net认为OnLoad指定了一个服务器端函数。然后''和'密码'似乎(至少到C#)指定字符文字,其中第一个实际字符太少(“空字符文字”),第二太多。

所以尝试(直接从查询字符串和读取密码)删除“RUNAT =服务器”

2

在我看来,你想提供一个“水印”,而不是真正的密码。你看过Ajax控件工具包的Watermark extender了吗?

+0

实际上,该术语是[占位符](http://www.w3.org/TR/html5/forms.html#the-placeholder-attribute),包含在HTML5规范中。 – 2010-06-21 10:21:18

+0

即使显示点也应该足够。 – 2010-06-21 10:37:31

1

@Hans Kesting答案是正确的,但如果您不想使用扩展程序,则可以使用以下代码。

<input class="txtfld" type="text" id="TextBoxLoginPassword" 
       value="enter password"  
       onfocus="javascript:if(this.type != 'password') this.value='';this.type='password'" 
       />