jquery validate valid()方法一直返回true
发布网友
发布时间:2022-05-17 03:57
我来回答
共2个回答
热心网友
时间:2022-05-17 05:26
我也遇到了这个问题,我的验证方法是这样写的,这个验证方法没有问题~(写的有点长,答案在最后)
//验证重名
function NameValid() {
return $("#userForm").validate({
rules: {
UserName: {
remote: {
cache: false,
async: false,
url: "/UserManage/CheckUserName",
type: "post",
datatype: "json",
data: {
userName: function () {
return $("#UserName").val();
},
id: function () {
return $("#Id").val();
}
},
//dataFilter: function (data, type) { return data.result; }
}
}
},
messages: {
UserName: {
remote: "这个名字已经有人用过了"
}
}
});
}
然后哩,我调用他: if (NameValid().form()){
alert("重名验证返回为True了!")
}else{
alert("重名验证返回为False了!")
}
结果呢NameValid().form()一直为true,百思不得其解啊,就一直调试,结果发现NameValid()这个东东,他不等我控制器返回数据,就继续执行下去了(这个东东好像默认是true),为什么会这样呢?因为remote是异步执行的啊!异步验证!异步!所以现在要把它变成同步的,让他等待后台返回数据过来,再往下执行,综上所述,解决办法:给remote加上这两个参数(我在这里看到的:http://blog.csdn.net/w1014074794/article/details/39552715)
remote: {
cache: false,
async: false,
url: "/UserManage/CheckUserName",
热心网友
时间:2022-05-17 06:44
1.用其他方式替代默认的SUBMIT
复制代码代码如下:
$().ready(function() {
$("#signupForm").validate({
submitHandler:function(form){
alert("submitted");
form.submit();
}
});
});
使用ajax方式
复制代码代码如下:
$(".selector").validate({
submitHandler: function(form)
{
$(form).ajaxSubmit();
}
})追问我代码本身也没有用默认的submit方法,我是问valid()为什么一直返回true