2010-01-28 41 views
0

我在驗證aspx頁面時遇到問題;我有以下代碼:驗證失敗時更改css類

<td> 
    Id 
</td> 
<td> 
    <asp:TextBox ID="txtId" runat="server"></asp:TextBox> 
</td> 
<td> 
    <asp:RequiredFieldValidator ID="reqId" runat="server" ErrorMessage="Error" ControlToValidate="txtId" SetFocusOnError="true"></asp:RequiredFieldValidator> 
    </td> 

而且下面的JavaScript代碼:

<script type="text/javascript"> 
    function ValidateData() { 
     var v1 = "#<%= txtId.ClientID %>"; 
     var val = Page_ClientValidate(); 
     if (!val) { 
      var i = 0; 
      for (; i < Page_Validators.length; i++) { 
       if (!Page_Validators[i].isvalid) { 
        $("#" + Page_Validators[i].controltovalidate) 
        .css("background-color", "red"); 
       } 
      } 
     } 
     return val; 
    } 
</script> 

這段代碼我從這篇文章中提取: Change textbox’s css class when ASP.NET Validation fails

的問題是,我遇到了錯誤:

Object Expected 

關於以下行:

$("#" + Page_Validators[i].controltovalidate) 

如此,屬性的ControlToValidate不存在時,我調試代碼(在Internet Explorer 7)。

我希望你能幫助我解決這個問題,我不知道如何得到那個財產或我錯過了什麼。

在此先感謝。

哦,我忘了,這是我的按鈕的代碼:

<asp:Button ID="btnSend" runat="server" Text="Send" 
          OnClientClick="return ValidateData();" 
          onclick="btnSend_Click" /> 
+0

你有沒有在你的腦袋標籤jQuery的參考? '$().css()'語法是jQuery。 – Fermin 2010-01-28 12:02:20

回答

0

controltovalidate應該要驗證控件的ID所代替。

所以行應該是這樣的:

$("#" + Page_Validators[i].txtId) 
+0

你是對的;問題是該頁面沒有找到jquery的參考,謝謝。 – lidermin 2010-01-28 12:16:17