我目前在我的表单上使用jquery bassistance验证器。我试图添加一个新函数,它将检查(使用json)用户名是否已经存在。我认为我没有采取正确的方式。这是我的代码:
jQuery.metadata.setType("attr", "validate");
jQuery.validator.addMethod("uniqueUsername", function(value) {
jQuery.getJSON("/index.php?option=com_json&format=raw", { task: "checkUsername", username: value }, function(data) {
var response = eval(data);
if (response == 1) {
//does exist
} else {
//does not exist
};
alert(response);
});
}, "This username is currently unavailable.");
jQuery("#adminForm").validate();
它目前会立即检查并在我输入用户名之前提醒我的回复。无论从json返回哪个响应,它也会给出错误。
如果有人这样做了,或者知道如何使用带有低音的json检查 - 任何帮助将不胜感激:)
答案 0 :(得分:1)
对服务器的调用是异步的。因此,您的函数会立即返回验证插件。
尝试检查验证函数中的标志(例如isUserNameValid)。然后将ajax调用附加到'change'事件以进行验证并将标志设置为相关值。立即将标志设置为false,然后执行ajax调用。
HTH
答案 1 :(得分:1)
验证插件有一个内置的远程方法用于此类事情。我建议你使用它并从它调用的方法返回true / false。
请参阅以下文档:Remote Validation Documentation