【发布时间】:2015-07-20 20:09:21
【问题描述】:
我有一个带有仅对数字进行验证的文本框的表单。错误显示在 jQueryUI 模式窗口中。但是,当在文本框中输入非数字时,我会多次收到相同的错误消息。我输入的非数字值越多,我得到的重复项就越多。任何建议将不胜感激。
这是初始验证
这是部分修复的验证
这是我输入非数字值时的验证消息。注意多个Please enter only digits 消息。
这里是代码。
var valForm = function(kit_id) {
var form = $("#frm_" + kit_id);
var strErrors = "<ul>";
form.validate({
errorClass: "error-class",
errorElement: "div",
errorPlacement: function(error, element) {
console.log(error);
strErrors += "<li>" + error[0].innerHTML + "</li>";
$("#error_modal").html("");
$("#error_modal").html(strErrors + "</ul>");
}
});
form.find('input[name^="kit_name_"]').each(function () {
$(this).rules("add", {
required: true,
messages: {
required: "Please enter a name."
}
})
});
form.find('input[name^="kit_desc_"]').each(function() {
$(this).rules("add", {
required: true,
messages: {
required: "Please enter a description."
}
});
});
form.find('input[name^="kit_qty_"]').each(function() {
$(this).rules("add", {
required: true,
digits: true,
messages: {
required: "Please enter a quantity."
}
});
});
if (! form.valid()) {
$("#error_modal").dialog().siblings(".ui-dialog-titlebar").remove();
strErrors = "";
} else {
form.submit();
}
};
【问题讨论】:
-
每次调用
errorPlacement函数时,您都会将当前错误附加到strErrors。没有什么能消除旧的错误,所以它只会不断增长。 -
在 jqueryvalidation.org 网站上查看这个例子:jqueryvalidation.org/files/demo/errorcontainer-demo.html