我正在使用jquery validate插件来验证我的表单。还有服务器端验证,并且我希望能够标记显示服务器端验证错误的字段,例如,如果jquery验证未捕获到唯一电子邮件,则为唯一电子邮件。
我正在从服务器脚本中接收到一个json对象,该对象具有字段名称,然后显示错误。
我曾想过使用该showErrors()
功能,但无法找到正确的方法来使其正常工作。到目前为止,这是我的脚本:
$.each(errors, function (key, value) {
console.log("Key:", key);
validator.showErrors({
key: value[0]
})
});
这会引发错误-uncaught typeError
因此我认为引用键是因为字段名不会剪切它。我意识到它是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"}
];
在$.each
循环的第一次迭代中,v
参数是整个对象在此k
位置,在这种情况下:
{"firstname": "I know that your firstname is Pete, Pete!"}
您可以看到这里需要第二个$.each
循环,该循环将遍历每个对象元素上的属性。
$.each(errors, function() {
$.each(this, function(k, v) {
/* ... code ... */
});
});
从文档 showErrors
方法中以aObject
作为参数。您需要构建它。
//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);
在循环中,我建立了我的对象,showErrors
该对象已传递给该对象的方法validator
。我选择此解决方案是因为这样,我只showErrors
调用一次,而不是在$.each
循环中每次都调用它。
这是一个有效的jsbin示例。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句