我想改变这种状况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?
谢谢。
谢谢。我删除了Html.ValidationMessageFor,但我不想删除我的JavaScript,因为我不会有我想要的红色边框。红色添加到我的无效输入字段中,我的问题是当我的输入有效时我无法删除它们! – celticharp
但你不需要任何JavaScript。当一个字段无效时,ASP.NET MVC自动向它添加'custom-validation-error'类。所以你所要做的就是编写相应的CSS规则,并在其周围添加红色边框。 –