У меня есть текстовое поле для хранения номера телефона и выпадающего списка, в котором перечислены поставщики мобильных услуг. Я стараюсь, чтобы оба были выбраны. Я использую валидатор клиента с проверкой на стороне клиента, используя группу проверки. Одной и той же группе проверки присваивается кнопка «Обновить».Пользовательская проверка на стороне клиента
Когда я добавляю номер телефона и нет оператора мобильной связи, или наоборот, сообщение об ошибке отображается, как только управление теряет фокус. Но если я нажму кнопку «Обновить», ошибка не появится, и обновление будет успешно обновляться. Не вижу, что я делаю неправильно. Ни одно из текстового поля или выпадающего списка не имеет автозапуска.
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
Ваша функция точная, но вызов этой функции неверен. call function onclientclick = "return Functionname()". это работает правильно –