関数を作成しました:
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と他の3つの変数が未定義であり、コードで使用できないことを警告します。reportValidator.form()はエラーを生成します。ただし、検証自体はすべてのフォームで機能します。
function saveReport() {
if (!comparableValidator.form()){return};
$.ajax({
url : SAVE_REPORT, // + "?json=" + ko.toJSON(reportModel),
data : {
json : ko.toJSON(reportModel)
}, ...