簡體   English   中英

客戶端自定義驗證

[英]Client side custom validation

我有一個文本框來保存電話號碼,並在下拉列表中列出移動提供商。 我試圖確保兩者都被選中。 我通過驗證組將客戶驗證器與客戶端驗證一起使用。 將相同的驗證組分配給“更新”按鈕。

當我添加電話號碼並且沒有移動服務提供商時,反之亦然,一旦控件失去焦點,就會顯示一條錯誤消息。 但是,如果我單擊“更新”按鈕,則不會顯示任何錯誤,並且更新會愉快地繼續進行。 看不到我在做什么錯。 文本框或下拉菜單均未設置自動回發。

function ValidateMobile(oSrc, args) {
    var tbMobile = document.getElementById('<%=tbMobile.ClientID%>');
    var ddlMobileProvider = document.getElementById('<%=ddlMobileProvider.ClientID%>');
    args.IsValid = true;
    var mobileNum = tbMobile.value.trim();
    var selectedCarrierValue = ddlMobileProvider.options[ddlMobileProvider.selectedIndex].value;

    if ((mobileNum != "" && selectedCarrierValue == "") || (mobileNum == "" && selectedCarrierValue != ""))
        args.IsValid = false;
}

<asp:TextBox runat="server" ID="tbMobile" CssClass="NormalSmall" Width="95%" />
<ajaxToolkit:MaskedEditExtender runat="server" ID="mtbMobile" TargetControlID="tbMobile" Mask="(999) 999-9999" />

<asp:DropDownList runat="server" ID="ddlMobileProvider" Width="95%" DataSourceID="odsMobileProviders" DataTextField="CARRIERNAME"  DataValueField="MOBILECARRIERID" AppendDataBoundItems="true">
    <asp:ListItem Text="Select Mobile Provider ..." Value="" />
</asp:DropDownList>

<asp:ImageButton runat="server" ID="ibUpdate"  ImageUrl="~/assets/images/buttons/Update.png" OnClick="ibUpdate_Click"  CausesValidation="true" ValidationGroup="vgCustInfo" />

<asp:CustomValidator runat="server" ID="cvMobile"  ControlToValidate="tbMobile" Display="Dynamic" ValidationGroup="vgCustInfo"  ClientValidationFunction="ValidateMobile" ErrorMessage="Both Carrier and Mobile Number must be specified"></asp:CustomValidator>
function ValidateMobile() {
var tbMobile = document.getElementById('<%=tbMobile.ClientID%>');
var ddlMobileProvider = document.getElementById('<%=ddlMobileProvider.ClientID%>');
args.IsValid = true;
var mobileNum = tbMobile.value.trim();
var selectedCarrierValue = ddlMobileProvider.options[ddlMobileProvider.selectedIndex].value;

if ((mobileNum != "" && selectedCarrierValue == "") || (mobileNum == "" && selectedCarrierValue != ""))
    args.IsValid = false;

}

暫無
暫無

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

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