Asp.net mvc Asp.net MVC5客户端验证行为在提交元素单击前后不同
我有一个带有“选择国家”默认选项的下拉列表,如果他们选择“选择国家”,我想验证为无效。ajax和不引人注目的脚本都已准备就绪。它实际上是在单击submit按钮后工作的,因为model类中处理这个特定页面的[Required]属性 然而,在按下submit按钮之前,它并不能像我所希望的那样工作:当我选择一个有效的选项并将tab键移开时,它会像预期的那样变为绿色。但是,我可以再次选择默认选项,它将保持绿色。事实上,其他一些文本框在为空时也保持绿色,但我实际上无法再现与下拉列表中不同的行为 然而,在表单提交一次并弹出所有验证消息之后,它的工作方式与预期的一样。其他人都有这样的经历。 我知道用一些javascript很容易解决这个问题,但如果有什么东西我根本就没有,我想知道 此图像是在以下情况下拍摄的:Asp.net mvc Asp.net MVC5客户端验证行为在提交元素单击前后不同,asp.net-mvc,client-side-validation,Asp.net Mvc,Client Side Validation,我有一个带有“选择国家”默认选项的下拉列表,如果他们选择“选择国家”,我想验证为无效。ajax和不引人注目的脚本都已准备就绪。它实际上是在单击submit按钮后工作的,因为model类中处理这个特定页面的[Required]属性 然而,在按下submit按钮之前,它并不能像我所希望的那样工作:当我选择一个有效的选项并将tab键移开时,它会像预期的那样变为绿色。但是,我可以再次选择默认选项,它将保持绿色。事实上,其他一些文本框在为空时也保持绿色,但我实际上无法再现与下拉列表中不同的行为 然而,在表
POBox不是必填字段,因此绿色在该字段上是可以的。嗨,如果客户端验证有问题,请确保项目中的以下代码行可用/正确
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
最后在Webconfig文件中:
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
希望以上内容能像检查表一样有所帮助。如果你有正确的答案;y实现了客户端验证,然后表单甚至不会提交,因此您的代码中显然有错误。是的,我必须检查一下-我假设它实际上没有提交,但没有在我的控制器中设置断点以确保。我在点击我的提交按钮时是指“提交”,而不是实际提交,但你是对的,我需要验证这一点。我只是检查了一下,它按预期工作-没有实际提交,不引人注目的javascript阻止提交。客户端脚本都已就绪,配置文件已如你所述。只有在首次单击submission元素之前,该问题才出现在不引人注目的验证范围内,并且仅出现在下拉列表中。感谢您的回答,尽管我最初的问题对于术语“提交”的措辞相当含糊,我将不得不恭敬地投反对票,因为它涉及客户验证工作/不工作这一更基本的问题,而我的问题是它在某些情况下是否正常工作。
<appSettings>
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>