我注意到在登录视图中,当用户输入他们的电子邮件地址并快速切换到密码字段时,MVC3 所需的属性验证会触发。我拥有的代码非常大,但我已经能够用一个非常简单的页面来重现它。它类似于以下内容:
我有一个非常基本的视图,附有模型。该模型有 2 个属性,这两个属性都具有 [Required] 属性。如果您聚焦一个,并按下任何不输入任何字符的键(例如,Shift、Esc 等),所需的验证就会触发,并且我会收到错误消息,指出该字段是必需的,即使我没有输入什么都没有。
有谁知道如何防止这种早期验证被触发?
我注意到在登录视图中,当用户输入他们的电子邮件地址并快速切换到密码字段时,MVC3 所需的属性验证会触发。我拥有的代码非常大,但我已经能够用一个非常简单的页面来重现它。它类似于以下内容:
我有一个非常基本的视图,附有模型。该模型有 2 个属性,这两个属性都具有 [Required] 属性。如果您聚焦一个,并按下任何不输入任何字符的键(例如,Shift、Esc 等),所需的验证就会触发,并且我会收到错误消息,指出该字段是必需的,即使我没有输入什么都没有。
有谁知道如何防止这种早期验证被触发?
所以我所做的是我使用以下代码禁用了这些输入字段的 keyup 事件:
<script type="text/javascript">
$(document).ready( function() {
$("input[data-val-required]").keyup(function () {
return false;
});
});
</script>
这允许客户端验证仅在用户点击提交按钮时关闭
同意 gdordon - 禁用/修复任何 jquery 验证。此外,您可以通过禁用 Unobtrusive Validation(在 web.config 中)来禁用此行为 - 这通常启用并使用 jquery 进行客户端验证。