Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc Asp.net MVC5客户端验证行为在提交元素单击前后不同_Asp.net Mvc_Client Side Validation - Fatal编程技术网

Asp.net mvc Asp.net MVC5客户端验证行为在提交元素单击前后不同

Asp.net mvc Asp.net MVC5客户端验证行为在提交元素单击前后不同,asp.net-mvc,client-side-validation,Asp.net Mvc,Client Side Validation,我有一个带有“选择国家”默认选项的下拉列表,如果他们选择“选择国家”,我想验证为无效。ajax和不引人注目的脚本都已准备就绪。它实际上是在单击submit按钮后工作的,因为model类中处理这个特定页面的[Required]属性 然而,在按下submit按钮之前,它并不能像我所希望的那样工作:当我选择一个有效的选项并将tab键移开时,它会像预期的那样变为绿色。但是,我可以再次选择默认选项,它将保持绿色。事实上,其他一些文本框在为空时也保持绿色,但我实际上无法再现与下拉列表中不同的行为 然而,在表

我有一个带有“选择国家”默认选项的下拉列表,如果他们选择“选择国家”,我想验证为无效。ajax和不引人注目的脚本都已准备就绪。它实际上是在单击submit按钮后工作的,因为model类中处理这个特定页面的[Required]属性

然而,在按下submit按钮之前,它并不能像我所希望的那样工作:当我选择一个有效的选项并将tab键移开时,它会像预期的那样变为绿色。但是,我可以再次选择默认选项,它将保持绿色。事实上,其他一些文本框在为空时也保持绿色,但我实际上无法再现与下拉列表中不同的行为

然而,在表单提交一次并弹出所有验证消息之后,它的工作方式与预期的一样。其他人都有这样的经历。 我知道用一些javascript很容易解决这个问题,但如果有什么东西我根本就没有,我想知道

此图像是在以下情况下拍摄的:

  • 在城市字段中输入文本
  • 然后跳出来
  • 然后从城市字段中删除所有文本
  • 从国家/地区下拉列表中选择有效项目
  • 选项卡“出国”下拉列表
  • 在国家/地区下拉列表中选择默认选项
  • 但是,在单击submit元素并且不引人注目的验证显示了所有元素的所有验证消息之后,下拉列表将采用预期的行为。现在,当选择默认选项时,元素为红色。为什么?


    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>