【发布时间】:2012-04-13 15:43:36
【问题描述】:
只是想知道在不编辑源 js 文件的情况下使用 mvc3 jquery.validate.unobtrusive 时是否有办法覆盖高亮和取消高亮选项...
我已经试过了:
var elementToValidate = $(element);
var form = $(element.form);
if (form.length) {
//elementToValidate.valid();
form.validate({
highlight: function (element, errorClass, validClass) {
$(element).removeClass(errorClass);
$(element).closest('td').addClass('alert-error error');
}, unhighlight: function (element, errorClass, validClass) {
$(element).removeClass(errorClass);
$(element).closest('td').addClass('alert-error error');
}
});
}
但突出显示和取消突出显示不会被覆盖,除非我从脚本中删除不显眼的库..
如果我编辑 jquery.validate.unobtrusive.js 的源代码,它似乎工作得很好:
function validationInfo(form) {
var $form = $(form),
result = $form.data(data_validation);
if (!result) {
result = {
options: { // options structure passed to jQuery Validate's validate() method
errorClass: "input-validation-error",
errorElement: "span",
errorPlacement: $.proxy(onError, form),
invalidHandler: $.proxy(onErrors, form),
messages: {},
rules: {},
success: $.proxy(onSuccess, form),
highlight: function (element, errorClass, validClass) {
$(element).removeClass(errorClass);
$(element).closest('td').addClass('alert-error error');
}, unhighlight: function (element, errorClass, validClass) {
$(element).removeClass(errorClass);
$(element).closest('td').addClass('alert-error error');
}
},
attachValidation: function () {
$form.validate(this.options);
},
validate: function () { // a validation function that is called by unobtrusive Ajax
$form.validate();
return $form.valid();
}
};
$form.data(data_validation, result);
}
return result;
}
只是想知道是否有人想出了一种无需修改源即可覆盖选项的方法..
干杯
【问题讨论】:
标签: jquery asp.net-mvc-3 validation unobtrusive-validation