1

有没有办法追踪为什么不显眼的验证不起作用?

我已经禁用了我所有的自定义验证器,并且只使用了 MVC 验证器,当我单击提交时它仍然发回服务器进行验证。

它快把我逼疯了。我唯一能想到的是我有一个隐藏的输入,除了[HiddenInput(DisplayValue = false)].

是否有一个特定的 javascript 函数我可以在其中放置一个断点来确定哪个字段导致表单提交?

编辑:

我只是意识到只有 IE8 导致服务器端验证。IE9、FF 和 Chrome 都很好。

编辑2:

好的,一定是缓存问题或其他问题。在某个时候,它又开始工作了,即使在恢复一切之后它仍然可以工作。

学过的知识。当你遇到愚蠢的问题时,总是清除你的缓存。

4

1 回答 1

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 中,则不会将不显眼的验证附加到其元素上,并且它不会起作用。将其注入 DOM 后,您必须使用 AJAX 成功回调中的方法手动附加它。$.validator.unobtrusive.parse

此外,FireBug 的控制台选项卡可能有助于显示代码中潜在的 javascript 错误。

于 2011-09-01T19:55:42.403 回答