簡體   English   中英

自定義驗證程序中的ClientValidationFunction未觸發

[英]ClientValidationFunction in Custom validator not firing

Google充滿了這類問題,但我想我的問題有點不同。 不同的是在這里我使用了masked input我包括jquery.maskedinput-1.2.2.jsjquery-1.7.2.min.js來使用masked inputs 屏蔽代碼是

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

但它沒有驗證輸入的長度所以我為此編寫了javascript並使用了'CustomValidator',如下所示。

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>

注意

textbox ClientIDMode="Static" ,這可能是個問題。

問題

問題是我的js function根本沒有觸發。 如果文本長度小於2但未顯示,則必須顯示警告,而不是回發。

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

您的主要問題是,Textbox為空,因此在用戶在Textbox中鍵入任何值之前不會分配任何args,因此不會調用該函數。 如果在文本框中鍵入任何值,則自定義驗證器工作正常,因此您需要一個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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM