// 验证用户名是否存在  
$.validator.addMethod("isExistCustName", function(value, element){
var param = {custName:value} ;
$.ajax({
url:"customerAction!isExistCustName.action",
type:"POST",
dataType:"json",  
data:{custName:value},
success:function(msg){
// alert("msg.data == " + msg.data);
if (msg.data=="true"){
return false ;
}
return true ;
}
});
return true ;
}, "该用户名是否存在"); 已经执行了,但是页面显示始终都是通过的,不论返回的是true 还是 false ,验证没有效果,求助!!jQuery验证

解决方案 »

  1.   

    你的代码,只有一种情况,你最后返回的都是true
      

  2.   

    最后为啥还加一句return true
      

  3.   

    你ajax里的那个回调函数 返回的false 是不会结束程序运行的,只是回调函数结束,
    我当初遇到这个问题的做法是,在函数外建立一个全局变量如下所示的修改;var r;
    $.validator.addMethod("isExistCustName", function(value, element){
    var param = {custName:value} ;
    $.ajax({
    url:"customerAction!isExistCustName.action",
    type:"POST",
    dataType:"json",  
    data:{custName:value},
    success:function(msg){
    //  alert("msg.data == " + msg.data);
    if (msg.data=="true"){
    r=false;
    }else{r=true}
    }
    });
    return r;
    }, "该用户名是否存在"); 
      

  4.   

    $("#inputForm").validate({
    rules: {
    userName: {
    required: true,
    remote: {type:"POST",url:"checkName",data:{
    在这里写就可以了吧..
    }}
    },
      

  5.   

    楼主的方法最后返回true了,也就是你不管后台返回什么数据,你的js方法都返回true;你采用3楼的方法试一下吧。
      

  6.   

    可不是 最外那层返回true了