我使用jquery验证插件.
在我的表格中,我需要检查昵称是否已被使用.
为此他们提供remote了进行ajax调用的密钥.对我来说,ajax调用正常工作并返回true或false.但它允许即使返回值为false,也不应该发生.
我的验证码看起来像,
$(function() {
$("#myform").validate({
rules: {
fullName: {
required: true,
minlength: 5
},
nickName: {
required: true,
minlength: 4,
alphaNumeric: true,
remote: {
url: "NickNameChecker",
type: "post",
data: {
nickName: function() {
return $("#nickName").val();
}},
success: function(data) {
return data;
}
}
}
},
messages: {
fullName: {
required: "Please Enter Your Full Name.",
minlength: "Full Name should have minimum 5 letters."
},
nickName: {
required: true,
minlength: "Nick Name should contain minimum 4 letters.",
remote: "This nickname is already in use."
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
任何建议都会很有感激!
谢谢!
解:
解决方案仅在我的代码中.
我刚刚删除了成功部分并尝试了.它的工作很棒!
(上面评论的扩展解释):
该success选项对于 jQuery validate 的远程验证无效。您应该能够仅指定要访问的 URL 来进行返回 true 或 false 值/错误消息的验证:
服务器端资源通过 $.ajax (XMLHttpRequest) 调用,并获取一个键/值对,对应于已验证元素的名称及其作为 GET 参数的值。响应被评估为 JSON,并且对于有效元素必须为 true,对于无效元素可以为任何 false、未定义或 null,使用默认消息;或一个字符串
有关如何使用该选项的更多信息,请参阅远程文档。你的代码可能看起来像这样:
$(function() {
$("#myform").validate({
rules: {
fullName: {
required: true,
minlength: 5
},
nickName: {
required: true,
minlength: 4,
alphaNumeric: true,
remote: {
url: "NickNameChecker",
type: "post",
data: {
nickName: function() {
return $("#nickName").val();
}
}
}
},
messages: {
fullName: {
required: "Please Enter Your Full Name.",
minlength: "Full Name should have minimum 5 letters."
},
nickName: {
required: true,
minlength: "Nick Name should contain minimum 4 letters.",
remote: "This nickname is already in use."
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1674 次 |
| 最近记录: |