2014-02-25 67 views
2

Google充滿了這類問題,但我想我的問題有點不同。 是什麼使不同是這裏我用masked input我包括jquery.maskedinput-1.2.2.jsjquery-1.7.2.min.js使用masked inputs。代碼屏蔽是ClientValidationFunction in Custom validator not firing

$(document).ready(
    function() { 
     $("#txtPhoneNo").mask("?(999) 999-9999"); 
    }); 

但不驗證輸入的長度,所以我寫了javascript爲和使用「CustomValidator'as如下。

function isPhoneNumberValid(sender, args) {alert("l"); 
    if (args.value.length < 2) 
     args.isValid = false; 
} 

alert("l");本身會告訴你,我只是想看看這是否js function火災與否。

代碼爲textboxCustomValidator如下。

<asp:TextBox ID="txtPhoneNo" runat="server" CssClass="textbox3" size="60" Width="350px" 
    TabIndex="4" ClientIDMode="Static"></asp:TextBox> 

    &nbsp;<span style="font-size: 12px;">(000-000-0000)</span> 

<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage="Phone number is not valid" 
     ClientValidationFunction="isPhoneNumberValid" Font-Size="9pt" ForeColor="Red" ControlToValidate="txtPhoneNo"></asp:CustomValidator> 

在這裏,在textboxClientIDMode="Static"使用這可能是問題。

問題

問題是我的js function不點火的。如果文本的長度小於2但它沒有顯示,它必須顯示警報,而不是回發。

任何人都可以幫助我。 謝謝

+0

你已經錯過了參數的函數'isPhoneNumberValid'在文本框中 –

+0

我指的是http://www.codingfusion.com/Post/CustomValidator-Example-in-asp-net – SMI

+0

你是否注意到'value'和'isValid'框架也是你的參考? –

回答

4

您的主要問題是,文本框是空的,所以任何參數在用戶鍵入文本框中的任何值之前未分配,因此該函數不會被調用。如果您在文本框中鍵入任何值,則自定義驗證器工作正常,因此您需要RequiredFieldValidator

嘗試,而不是你這個代碼

<script> 
    function isPhoneNumberValid(sender, args) { 
     alert("l"); 
     if (args.Value.length < 2) 
      args.isValid = false; 
    } 
</script> 

<h3>We suggest the following:</h3> 
<asp:TextBox ID="txtPhoneNo" runat="server" CssClass="textbox3" size="60" 
      Width="350px" TabIndex="4"></asp:TextBox> 
&nbsp;<span style="font-size: 12px;">(000-000-0000)</span> 
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
    ValidationGroup="xxx" ControlToValidate="txtPhoneNo" Font-Size="9pt" 
    Display="Dynamic" ForeColor="Red" ErrorMessage="This field is Empty"> 
</asp:RequiredFieldValidator> 
<asp:CustomValidator ID="CustomValidator1" runat="server" ErrorMessage= 
    "Phone number is not valid" ClientValidationFunction="isPhoneNumberValid" 
    Font-Size="9pt" ForeColor="Red" ValidationGroup="xxx" Display="Dynamic" 
    ControlToValidate="txtPhoneNo"> 
</asp:CustomValidator> 
<asp:Button ID="Button1" runat="server" Text="Button" ValidationGroup="xxx" /> 

你需要先檢查一下ASP:RequiredFieldValidator的,然後使用自定義驗證

<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
    ValidationGroup="xxx" ControlToValidate="txtPhoneNo" Font-Size="9pt" 
    Display="Dynamic" ForeColor="Red" ErrorMessage="This field is Empty"> 
</asp:RequiredFieldValidator>