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>
どのようにこれは私の本来の機能とは異なるのですか? – NoBullMan
あなたの機能は正確ですが、その機能の呼び出しは間違っています。コール関数onclientclick = "return Functionname()"。それは適切に動作します –