$("#frmNewContracts").validate({
errorClass : "state-error",
validClass : "state-success",
errorElement : "span",
rules: {
txtusername : { required : true,
rangelength : [5, 18],
remote : { url : "./_aQ8/auxphp/ajxcontrol.php", type : "get" }
}
},
messages: {
txtusername : { required : "User-name is required",
rangelength : "User-name must be between 5 - 18 characters",
remote : $.validator.format("User-name : <strong>{0}</strong> is already taken please try another")
}
},
errorLabelContainer: "#joinerrgroup",
wrapper: "li"
});
您好, 由于问题建议我有一个使用jQ Validate插件验证的表单,上面提供的代码是我已经隔离的片段并且单独尝试使用我的html表单,问题是相同的。
问题是:用户名应该动态更新(或者我认为)显示用户输入的用户名,当它已经存在于数据库表中时 - 一切正常,但在测试并尝试多个重复的用户名时,故意检查功能,消息显示正确但用户名继续显示输入的第一个重复用户名。它不会更新以显示当前在用户名表单字段中的重复名称。这是正常的行为,我需要做别的吗?
答案 0 :(得分:1)
messages
您不需要remote
选项。
根据文档,如果您从服务器端代码回显或发送JSON编码的字符串,验证将失败,此字符串将成为验证消息。
答案 1 :(得分:0)
您可以使用jQuery获取用户名,然后使用格式化方法。
remote: function() {
return jQuery.format("User-name : <strong>{0}</strong> is already taken please try another", $("#username").val());
}
答案 2 :(得分:0)
我遇到了这个错误,被接受的答案只起作用了两次,正如Flim Flam在评论中指出的那样。对我来说,解决方法是在返回字符串的函数中添加一个参数(我称其为“ element”)。
例如:
remote: function(element) {
return jQuery.format("User-name : <strong>{0}</strong> is already taken please try another", $("#username").val());
}