jquery验证动态字段名显示错误
我正在使用jquery验证插件来验证我的表单。还有服务器端验证,我希望能够标记显示服务器端验证错误的字段,例如,如果jquery验证没有捕获到唯一电子邮件 我从服务器脚本接收到一个json对象,它有字段名,然后出错 我曾想过使用jquery验证动态字段名显示错误,jquery,validation,Jquery,Validation,我正在使用jquery验证插件来验证我的表单。还有服务器端验证,我希望能够标记显示服务器端验证错误的字段,例如,如果jquery验证没有捕获到唯一电子邮件 我从服务器脚本接收到一个json对象,它有字段名,然后出错 我曾想过使用showErrors()函数,但无法找到正确的方法来实现此功能。以下是我目前的脚本: $.each(errors, function (key, value) { console.log("Key:", key); validator.showErrors
showErrors()
函数,但无法找到正确的方法来实现此功能。以下是我目前的脚本:
$.each(errors, function (key, value) {
console.log("Key:", key);
validator.showErrors({
key: value[0]
})
});
这会抛出一个错误-uncaughttypeerror
,因此我假设引用键,因为字段名不会剪切它。我意识到它将key
评估为字段名,而不是key
中包含的值,这正是我试图实现的
谢谢您正在循环一个JSON对象。 我将假设您的
errors
json对象是这样的:
var errors = [
{"firstname": "I know that your firstname is Ray, Ray!"},
{"age":"You're not so old"},
{"job":"You're not Buddha"}
];
在$的第一次迭代中。每个循环v
参数,它是k
位置的整个对象,在这种情况下:
{"firstname": "I know that your firstname is Pete, Pete!"}
您可以看到,这里需要第二个$。每个循环将迭代每个对象元素上的属性
$.each(errors, function() {
$.each(this, function(k, v) {
/* ... code ... */
});
});
从showErrors
方法将对象
作为参数。
你需要建造它
//my validator object
var validator = $( "#yourFormID" ).validate();
// empty object that I'll fill with name input/errors
var objErrors = {};
//iterate over array of objects/maps
$.each(errors, function() {
//iterate over the properties on each object
$.each(this, function(k, v) {
objErrors[k] = v;
});
});
validator.showErrors(objErrors);
在循环中,我构建了我的对象,并将其传递给对象的方法validator
。
我之所以选择此解决方案,是因为与此类似,我只调用一次showErrors
,而不是每次在$循环中调用它
一个有效的jsbin示例。太好了。今晚我要试一试。谢谢你完整的回答。真的很有用。非常感谢。