0

我想改变这种状况ASP.NET MVC 3以这种方式使用客户端验证的默认行为:自定义客户端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?

谢谢。

回答

0

好答案是很简单..

我只是说这个CSS规则:

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

打消了我的JavaScript代码和删除Html.ValidationMessageFor作为达林季米特洛夫建议。

该死的,该死的...

1

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

+0

谢谢。我删除了Html.ValidationMessageFor,但我不想删除我的JavaScript,因为我不会有我想要的红色边框。红色添加到我的无效输入字段中,我的问题是当我的输入有效时我无法删除它们! – celticharp

+0

但你不需要任何JavaScript。当一个字段无效时,ASP.NET MVC自动向它添加'custom-validation-error'类。所以你所要做的就是编写相应的CSS规则,并在其周围添加红色边框。 –