2016-09-20 13 views
0

私は、電話番号を保持するテキストボックスを持っており、モバイルプロバイダーをリストアップしたリストをドロップダウンします。私は両方が選択されていることを確認しようとしています。私は、検証グループを使用して、クライアント側の検証を行う顧客検証ツールを使用します。同じ検証グループが「更新」ボタンに割り当てられています。クライアント側のカスタム検証

電話番号とモバイルプロバイダを追加したり、その逆の場合は、コントロールのフォーカスが失われるとエラーメッセージが表示されます。しかし、私が「更新」ボタンをクリックすると、エラーは表示されず、更新が楽しく更新されます。私が間違っていることを見ることができません。テキストボックスまたはドロップダウンのいずれにもオートポストバックが設定されていません。

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> 

答えて

0
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; 

}

+0

どのようにこれは私の本来の機能とは異なるのですか? – NoBullMan

+0

あなたの機能は正確ですが、その機能の呼び出しは間違っています。コール関数onclientclick = "return Functionname()"。それは適切に動作します –

関連する問題