2010-03-05 100 views
15

我有一個文本框,當用戶跳出文本框(onBlur事件)時,我需要驗證其值(如果textbox的值爲50,則顯示消息在lblShowMsg中)。我似乎無法得到正確的語法。ASP.Net textbox onblur事件

我有這樣的代碼在我的頁面加載事件:

protected void Page_Load(object sender, EventArgs e) 
{ 
    txtCategory.Attributes.Add("onblur", "validate()"); 

} 

但我似乎無法得到javascript代碼正確。有什麼建議麼?

+2

你爲什麼要在動態添加屬性onblur而不是標記? – awright18 2010-03-05 03:13:04

回答

9

後面的代碼代碼:(VB.NET)

在頁面加載事件

txtAccountNumber.Attributes["onBlur"] = "IsAccNumberValid(" & txtAccountNumber.ClientID & ")"; 

凡txtAccountNumber是在標記頁面TextBox的ID和你通過文本框的客戶端ID,因爲JavaScript是客戶端而不是服務器端。現在在標記頁面(.aspx)在頁面的頭部有這個javascript:

<script type="text/javascript">      
function IsAccNumberValid(txtAccountNumber) {            
    if (txtAccountNumber.value.length < 6) {  
         alert(txtAccountNumber.value); 
      }  
     }  
</script> 
+3

這裏是C#版本:ddlCompanies.Attributes [「onBlur」] =「AddNewCompany1(」+ ddlCompanies.ClientID +「)」; – 2014-02-28 23:17:37

5

這是你的Page_Load中的實際代碼嗎?您需要使用控件的名稱,而不是TextBox的類型名稱。例如,您可能想嘗試:

textBox1.Attributes.Add("onblur", "validate();"); 

其中「textBox1」是您分配給標記中的文本框的ID。

另外,從Javascript中,很可能文本框的ID一旦被呈現給頁面就改變了。這將是更好,如果你會通過控制到validate函數:

function validate(_this) 
{ 
    if (_this.value == "50") 
     // then set the ID of the label. 
} 

那麼你會這樣設置屬性:

textBox1.Attributes.Add("onblur", "validate(this);"); 

最後,我會強烈建議使用jQuery庫,如果你'在JavaScript中做任何事情。它會讓你的生活變得更容易10倍。

+0

對不起,這是我的一個錯字。 txtBox的ID是txtCategory – LearningCSharp 2010-03-05 03:09:42

+0

當我運行上面顯示的代碼(沒有JQuery)時,出現錯誤消息「Microsoft JScript運行時錯誤:'document.form1。lblShowMsg'爲空或不是對象「 – LearningCSharp 2010-03-05 03:17:45

+0

同樣,問題的部分原因是您想要使用的標籤可能會重命名爲其他內容。使用IE中的開發工具或Firefox中的FireBug來尋找_actual_表單上的標籤ID,這兩種工具都可以讓你瀏覽DOM,找到它後,使用document.getElementById(「元素的id在這裏」)來獲取元素,然後你可以設置它的innerHTML Javascript中的屬性 – 2010-03-05 10:52:12

2

This Works。

Textbox1.Attributes.Add(「onblur」,「javascript:alert('aaa');」);

確保函數位於頁面的腳本部分。


我的頁面

<script type="text/javascript"> 
    function Validate() { 

     alert('validate'); 

    } 

    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:TextBox ID="Textbox1" runat="server"></asp:TextBox> 
     <asp:Button ID="Button1" runat="server" Text="Button" /> 
    </div> 
    </form> 
</body> 
</html> 

背後

public partial class _Default : System.Web.UI.Page 
    { 
     protected void Page_Load(object sender, EventArgs e) 
     { 
      Textbox1.Attributes.Add("onblur","Validate();"); 
     } 
    } 
+0

不需要警報;需要在標籤中顯示一個msg; (lblShowMsg.visible = true) – LearningCSharp 2010-03-05 03:10:45