当MVC验证触发时,对DOM进行了哪些更改?

时间:2011-09-02 11:58:15

标签: javascript jquery asp.net-mvc validation dom

我在模态窗口中有一个表单,当前正在执行一些验证。 (我使用的是ASP.NET MVC,JQuery UI,ajax表单,数据注释和unobtrusive是活动的)

当这个验证触发时我到目前为止已经注意到它做了一些事情:

1:我的验证摘要会将其类从.validation-summary-valid更改为.validation-summary-errors

2:我的无效输入添加了一个类,然后调用.input-validation-error

3:我的验证消息将其课程从.field-validation-valid更改为.field-validation-error

但是它还有其他功能,我无法弄清楚它是如何跟踪它的。

我有一个必需的文本框,在触发验证之前我可以在这个框内选择,然后选择另一个框,验证将是静默的。

但是只要我通过单击带有空文本框的提交来触发验证,我就可以选择文本框并输入一些内容以立即删除验证,但如果我将其置零并选择其他框,则会重新应用此错误没有重新提交。

所以我的问题是:发生了什么变化,它是如何知道我已经尝试提交的?

1 个答案:

答案 0 :(得分:1)

调用validate时,它会为每个应该验证的输入/选择添加一个类。当输入/选择无效时,它会向输入/选择添加一个类:

class="input-validation-error"

如果有效,则添加:

class="valid"

验证仅在您更改值时触发控件,而不是在失去焦点时触发。

即使在您提交表单之前,验证也会触发更改。获取一个必需的文本框,为其添加一个值,然后选择标签...然后返回并删除该值,您应该看到文本框突出显示为红色。