Javascript 如何访问客户端的服务器端验证错误并更改css类
我正在从事一个MVC项目,该项目使用Jquery进行客户端验证,如下所示Javascript 如何访问客户端的服务器端验证错误并更改css类,javascript,jquery,html,model-view-controller,unobtrusive-validation,Javascript,Jquery,Html,Model View Controller,Unobtrusive Validation,我正在从事一个MVC项目,该项目使用Jquery进行客户端验证,如下所示 jQuery.validator.defaults.highlight = function (element, errorClass, validClass) { if ($(element).attr('readonly')) { return; } element = this.findByName(element
jQuery.validator.defaults.highlight = function (element, errorClass, validClass) {
if ($(element).attr('readonly')) {
return;
}
element = this.findByName(element.name);
element.parent()
.addClass('invalid')
.removeClass('valid');
};
jQuery.validator.defaults.unhighlight = function (element, errorClass, validClass) {
element = this.findByName(element.name);
element.parent()
.removeClass('invalid')
.addClass('valid');
element.nextAll('.error').hide();
};
通过这种验证方式,我们将显示如下所示的错误消息
但是我有一个模型,其中有几个字段需要在服务器端进行验证,因此当我发布表单时,我需要获得服务器端验证失败的字段列表,当我再次加载视图时,我需要更改失败字段的css并向用户显示错误,如何执行此操作?在服务器端,使用模板语言,您可以在出现错误时自定义html,并指定出现的错误。在html中,您可以有条件地创建新元素,也可以应用css来显示隐藏的错误。或者使用javascript提供一些数据
简言之,您可以在服务器上更改html中的数据,以表明出现了问题,使用swig、jade等模板引擎很容易做到。这可以通过jQuery提交上的Ajax错误方法来处理(这是一个Ajax表单帖子,对吗?) 比如:
jQuery.ajax({
type: "POST",
url: "/saveuser",
dataType: "application/json",
data: data,
success: function (response) {
console.log("Details saved successfully!!!");
},
error: function (xhr, ajaxOptions, thrownError) {
jQuery.validator.defaults.highlight(thrownError.fieldName);
}
});