2016-09-20 8 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

Ваша функция точная, но вызов этой функции неверен. call function onclientclick = "return Functionname()". это работает правильно –

 Смежные вопросы

  • Нет связанных вопросов^_^