Javascript 自定义客户端ASP.NET MVC 3验证
我想通过以下方式更改ASP.NET MVC 3使用的客户端验证的默认行为: 如果有错误,我不希望在HTML中添加任何span来显示我的错误。 我唯一想做的就是更改有错误的输入字段的颜色 我不知道这样做是否“正确”,但这是我已经做过的: 我编辑了jquery.validate.unobtrusive.js:Javascript 自定义客户端ASP.NET MVC 3验证,javascript,jquery,asp.net-mvc,asp.net-mvc-3,client-side-validation,Javascript,Jquery,Asp.net Mvc,Asp.net Mvc 3,Client Side Validation,我想通过以下方式更改ASP.NET MVC 3使用的客户端验证的默认行为: 如果有错误,我不希望在HTML中添加任何span来显示我的错误。 我唯一想做的就是更改有错误的输入字段的颜色 我不知道这样做是否“正确”,但这是我已经做过的: 我编辑了jquery.validate.unobtrusive.js: function onError( error, inputElement ) { // 'this' is the form element var contain
function onError( error, inputElement )
{ // 'this' is the form element
var container = $( this ).find( "[data-valmsg-for='" + inputElement[0].name + "']" ),
replace = $.parseJSON( container.attr( "data-valmsg-replace" ) ) !== false;
container.removeClass( "field-validation-valid" ).addClass( "field-validation-error" );
inputElement.addClass( "custom-validation-error" ); // <--------- this is my edit
error.data( "unobtrusiveContainer", container );
if( replace )
{
container.empty();
error.removeClass( "input-validation-error" ).appendTo( container );
}
else
{
error.hide();
}
}
函数onError(错误,inputElement)
{/'this'是表单元素
var container=$(this).find(“[data valmsg for='”+inputElement[0].name+']),
replace=$.parseJSON(container.attr(“data valmsg replace”))!==false;
container.removeClass(“字段验证有效”).addClass(“字段验证错误”);
inputElement.addClass(“自定义验证错误”);//只需删除
Html.ValidationMessageFor
字段,该字段负责添加
标记,错误消息将显示在该标记中。因此,您只需要一个Html.EditorFor
。然后去掉您编写的javascript。好的,答案非常简单
我刚刚添加了这个CSS规则:
.custom-validation-error
{
border: 1px solid red !important;
}
按照Darin Dimitrov的建议删除了我的javascript代码和Html.ValidationMessageFor
该死,该死…谢谢。我删除了Html.ValidationMessageFor,但我不想删除我的javascript,因为我没有想要的红色边框。红色被添加到我的无效输入字段中,我的问题是当我的输入有效时我无法删除它们!但你不需要任何javascript。当一个字段无效时ASP.NET MVC自动向其添加
自定义验证错误
类。因此,您只需编写相应的CSS规则并在其周围放置一个红色边框。