簡體   English   中英

客戶端自定義驗證未執行

[英]Client Side Custom Validation isn't executing

我目前正在使用c#學習ASP.NET 4.0。 我花了大約2個小時來研究這個問題,目前我對這一切如何將其應用於自己的情況還沒有足夠的了解,因此,我需要一對一的幫助。 另外,我的錯誤很可能是非常業余的,所以請不要害怕探索這種可能性。 最后,謝謝您的輸入

我做了一個非常基本的表格,只需要對多個字段(姓名,電子郵件,確認電子郵件,家庭電話,商務電話)進行文本輸入,並在所有字段上進行驗證。 我的所有驗證工作都正常,但我似乎無法弄清楚為什么我的客戶端javascript自定義驗證(這只是要求家用電話字段或商務電話字段具有輸入)不執行任何操作的原因。 服務器端驗證工作正常(如果我將每個其他字段正確地發布到服務器上,則可以得到期望的結果,但是如果一個或多個其他字段無效,則自定義驗證不執行任何操作。)

我將嘗試發布解決問題所需的所有相關代碼:我的javascript設置了驗證是否有效(如果任一文本框具有文本)

<script type="text/javascript">
    function ValidatePhoneNumbers(source, args)
    {
        var phoneHome = document.getElementById('<%= PhoneHome.ClientID %>');
        var phoneBusiness = document.getElementById('<%= PhoneBusiness.ClientID %>');
        if (phoneHome.value != '' || phoneBusiness != '')
        {
            args.IsValid = true;
        }
        else
        {
            args.IsValid = false;
        }   
    }
</script>

這是我的自定義驗證標記:

<asp:CustomValidator ID="CustomValidator1" runat="server" 
                ClientValidationFunction="ValidatePhoneNumbers" CssClass="ErrorMessage" 
                Display="Dynamic" ErrorMessage="Enter Your home or business phone number" 
                onservervalidate="CustomValidator1_ServerValidate">*</asp:CustomValidator>

最后,這是我的兩個文本框:

<asp:TextBox ID="PhoneHome" runat="server"></asp:TextBox>

<asp:TextBox ID="PhoneBusiness" runat="server"></asp:TextBox>

您的Javascript函數中有一個小錯誤,該錯誤會導致驗證始終成功:

if (phoneHome.value != '' || phoneBusiness != '')

應替換為:

if (phoneHome.value != '' || phoneBusiness.value != '')

暫無
暫無

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

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