0

我想更改 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 中?

谢谢。

4

2 回答 2

1

只需删除Html.ValidationMessageFor负责添加<span>将显示错误消息的标签的字段。所以你只需要一个Html.EditorFor. 然后摆脱您编写的javascript。

于 2012-10-11T16:33:54.880 回答
0

好的,答案真的很简单..

我刚刚添加了这个 CSS 规则:

.custom-validation-error  
{
   border: 1px solid red !important;
}

正如 Darin Dimitrov 所建议的那样,删除了我的 javascript 代码并删除了 Html.ValidationMessageFor 。

妈的,妈的……

于 2012-10-12T08:43:32.047 回答