[英]Custom client-side ASP.NET MVC 3 Validation
我想更改ASP.NET MVC 3以这种方式使用的客户端验证的默认行为:
如果有错误,我不希望在HTML中添加任何范围来显示我的错误。 我唯一想做的就是更改有错误的输入字段的颜色。
我不知道这是否是“正确”的方法,但这就是我已经做的:
我编辑了jquery.validate.unobtrusive.js:
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();
}
}
这只会添加名为custom-validation-error的类,该类会更改输入字段的颜色。 但是,如果一切正常,如何删除该类?
以及如何停止将跨度添加到HTML?
谢谢。
只需删除Html.ValidationMessageFor
字段,该字段负责添加<span>
标记,将在其中显示错误消息。 因此,您只需要一个Html.EditorFor
。 然后摆脱您编写的JavaScript。
好的,答案非常简单。
我刚刚添加了以下CSS规则:
.custom-validation-error
{
border: 1px solid red !important;
}
按照Darin Dimitrov的建议,删除了我的JavaScript代码并删除了Html.ValidationMessageFor。
该死,该死...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.