2010-06-21 106 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'" 
       />