有没有办法追踪为什么不显眼的验证不起作用?
我已经禁用了所有自定义验证程序,只使用了MVC验证程序,当我点击提交时,它仍会回发到服务器进行验证。
这让我疯了。我唯一能想到的是我有一个隐藏的输入,除了[HiddenInput(DisplayValue = false)]
之外没有任何验证属性。
是否有特定的javascript函数我可以设置一个断点来确定哪个字段导致表单提交?
编辑:
我只是意识到只有IE8才会导致服务器端验证。 IE9,FF和Chrome都很好。
编辑2:
好的,它一定是缓存问题。在某些时候它再次开始工作,即使在恢复每一个之后它仍然在工作。
经验教训。当你遇到愚蠢的问题时,Alwasy会清除你的缓存。
答案 0 :(得分:3)
确保您参考了以下脚本并且路径正确无误:
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
并且您已在web.config中启用了客户端验证:
<add key="ClientValidationEnabled" value="true" />
另一个重要的方面是,如果表单由于AJAX调用而被注入到DOM中,那么不显眼的验证将不会附加到其元素上,并且它将无法工作。在将AJAX成功回调注入DOM后,您必须使用$.validator.unobtrusive.parse
方法attach it manually进行{{3}}。
此外,FireBug的控制台选项卡可能对您的代码显示潜在的javascript错误很有用。