我创建了一个函数:
function createValidatorForForm(id) {
var formValidator = $(id).validate({
errorClass:'help-inline',
errorElement:'p',
highlight:function (element, errorClass, validClass) {
$(element.parentNode.parentNode).addClass('error')
},
unhighlight:function (element, errorClass, validClass) {
$(element.parentNode.parentNode).removeClass('error')
}
});
return formValidator;}
然后我以下面的方式在我的代码中使用它:
var reportValidator = createValidatorForForm("#report-form");
var areaValidator = createValidatorForForm("#area-form");
var liquidationValidator = createValidatorForForm("#liquidation-form");
var comparableValidator = createValidatorForForm("#comparable-form");
但是尽管 Firebug 知道 formValidator 并且我可以在调试器中看到它的状态,但他提醒我 reportValidator 和另外三个变量未定义,我无法在我的代码中使用它们:reportValidator.form() 生成错误。但验证本身适用于所有形式。
function saveReport() {
if (!comparableValidator.form()){return};
$.ajax({
url : SAVE_REPORT, // + "?json=" + ko.toJSON(reportModel),
data : {
json : ko.toJSON(reportModel)
}, ...