我正在使用带有 twitter 引导程序的 ASP.net MVC。
我添加了以下内容以使有错误的字段在引导程序中正确设置样式
$.validator.setDefaults({
highlight: function (element) {
$(element).closest(".control-group").addClass("error");
},
unhighlight: function (element) {
$(element).closest(".control-group").removeClass("error");
}
});
这适用于除自定义验证属性之外的所有验证。我创建的自定义验证器检查是否选中了一个复选框,如果没有,它希望在文本字段中输入一些内容。这只是一个示例,但我创建的其他自定义验证属性以与下面描述的相同方式失败。
如果我提交表单,所有错误的样式都会正确设置,但使用我的自定义验证器的字段除外。但是我知道验证器运行是因为出现了错误消息,但消息和字段是黑色而不是红色。
如果我在字段中输入一些文本以满足验证器的要求,错误消息就会消失。然后,如果我删除该文本,则会返回错误消息,并且所有内容都应为红色。
然后,如果我再次提交表单,即使错误仍然存在,红色样式也会消失,但仅对于具有自定义验证器的字段,所有其他错误仍为红色。
在表单提交时,我设置的默认值(如上所示)不会针对具有自定义验证器的字段运行,但默认值会针对其他所有内容运行。
然而,通过自定义验证器在字段上的 on blur 和 key up 事件,一切都按预期运行,并且所有样式都按预期工作。
我不知道接下来要看什么。任何帮助/方向表示赞赏。