繁体   English   中英

自定义客户端ASP.NET MVC 3验证

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM