2015-04-07 81 views
0

我通过jquery验证插件验证了我的表单。我面临一个问题,我有一个问题。 fiddle在jquery验证中添加方法

  1. 问题:我已经使用addmethod添加自定义验证。它工作正常,但相关消息不显示。

  2. 查询:我必须检查用户输入的用户名是否存在。我在以JSON的形式调用ajax之后获得响应。前

    { “用户名”: “存在”}

我再拍客户验证方法。

$.validator.addMethod("specialChar", function(value, element){  
    return response.username!="exist" 
},"{0} already exist"); 

我的问题是如何火阿贾克斯成功

回答

1
$('#myform').validate({ 
     onfocusout:function(element){   
      this.element(element) 
     }, 
     rules:{ 
      username:{ 
       required:true, 
       specialChar:true 
      } 
     }, 

     messages:{ 
      **"username": { 
       required: "bhai ye required hai", 
       specialChar: "bhai ye special bhe mat daal" 

      }** 


     } 
    }) 

大胆在代码

和更新小提琴的变化,以及:http://jsfiddle.net/61pptcb3/3/

0

在此之后验证我认为你会使用special remote method的更好。它允许你设置一个ajax请求来验证一个元素。它确实要求您对服务器设置进行一些小改动,但这会让其余部分更容易。

0
$.validator.addMethod("specialChar", function (value, element, params) { 
    var patt = new RegExp(/[^A-z]/g); 
    return !patt.test(value); 
}); 


$('#myform').validate({ 
    onfocusout: function (element) { 
     this.element(element) 
    }, 
    rules: { 
     username: { 
      required: true, 
      specialChar: true 
     } 
    } 
}); 

$.extend($.validator.messages, { 
    required: "My own text.", 
    specialChar: "special charactor not allow" 
}); 
0

添加,并显示一个Ajax的装载机,而用户输入用户名。当jQuery ajax调用返回时,隐藏ajax-loader图标并在用户不存在时显示消息。

为了提供callback to jQuery.ajax使用:

jQuery.ajax(url, {complete: function(){}}); 

validate the element when the ajax returns use

$("#myform").validate().element("#i1"); 

要放在一起做:

$.ajax(url, {complete: function(data){ 
    // truigger validation on ajax complete 
    $("#myform").validate().element("#i1"); 
}}); 
+0

如果我们使用$( “#myForm会”) .validate()。元素( “#I1”)。该验证将被触发 – Carlos

+0

@amit,它应该激发所有在该元素上添加的验证 –