2014-10-28 79 views
0

我有这样的客户端功能:ASP.NET和jQuery远程验证:验证功能不叫

$(document).ready(function() { 
    var validate = $("#<%=Page.Form.ClientID%>").validate({ 
     errorElement: 'span',     
     rules: { 
      <%=txtMemberShipNumber.ClientID %> : { 
         required: true, 
         remote: function() { 
          return { 
           url: "/TestForm.aspx/IsMembershipNumberValid", 
           type: "POST", 
           contentType: "application/json; charset=utf-8", 
           dataType: "json", 
           data: JSON.stringify({ value: $('#<%=txtMemberShipNumber.ClientID %>').val() }), 
           dataFilter: function (data) { 
            var msg = JSON.parse(data); 
            if (msg.hasOwnProperty('d')) 
             return msg.d; 
            else 
             return msg; 
           } 
          } 
         }, 
        }, 
       }, 
       messages: { 
        <%=txtMemberShipNumber.ClientID %> : { 
         required: "Account number is Required", 
         remote: "Invalid", 
        }, 
       }, 
       onkeyup:false, 
       onblur: true, 
       onfocusout: function (element) { $(element).valid() } 
}); 

})

...这证实了这一控制:

<input name="ctl00$MainContent$txtMemberShipNumber" type="text" id="MainContent_txtMemberShipNumber" class="textboxStyle" placeholder="Membership Number" /> 

的问题是验证码永远不会被调用。我已经在Firefox和Chrome中测试过它。

我错过了什么吗?

回答

0

我想通了。

而不是

<%= txtMemberShipNumber.ClientID%>:{

...你应该使用

<%= txtMemberShipNumber。 的UniqueID%>:{