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