2013-07-23 51 views
0

我希望在其關聯文本框未通過驗證時更改標籤的顏色。沒有得到與我當前的代碼的任何結果:如果數據未經過驗證,則使用自定義驗證程序更改標籤顏色

<asp:Label ID="lblFirstName" runat="server" Text="Your First Name*:"></asp:Label> 
<br /> 
<asp:CustomValidator 
    ID="customValFirstName" 
    runat="server" 
    Text="" 
    ControlToValidate="txtFirstName" 
    ClientValidationFunction="validateFirstName" 
    Display="Dynamic"></asp:CustomValidator> 
    <asp:TextBox ID="txtFirstName" runat="server" CssClass="textbox" MaxLength="50"></asp:TextBox> 

的Javascript:

function validateFirstName(sender, args) { 
     var firstName = document.getElementById('<%=txtFirstName.ClientID %>'); 
     var firstNameLbl = document.getElementById('<%=lblFirstName.ClientID %>'); 
     if (firstName !== "") { 
      args.IsValid = true; 
     } 
     else { 
      args.IsValid = false; 
      firstNameLbl.style.color = '#FF0000'; 
     } 
    }; 

可以在我在做什麼錯,將不勝感激被有何啓示。

+0

什麼正在發生的事情進行驗證?函數是否被執行? –

+0

沒有任何事情發生,目標標籤保持初始顏色。據我所知,該功能沒有執行。我的其他JavaScript功能正常運行。 –

+0

只是在附註中,'sender'參數的意義是什麼? – talemyn

回答

2

您需要比較文本框的值。

變化if (firstName !== "")if (firstName.value !== "")

還多了一個屬性添加到您的自定義驗證標記:ValidateEmptyText="true"否則空的文本將不會在所有

+0

我仍然沒有改變。不知道還有什麼可以的。 –

+0

您是否更改了JavaScript部分和ASPX部分? –

+0

ValidateEmptyText部分是修復它,謝謝。你是冠軍。 –

相關問題