2016-09-20 12 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()". 그게 제대로 작동 –