【问题标题】:client validation on jquery 2.1.1jquery 2.1.1 上的客户端验证
【发布时间】:2014-07-07 10:09:38
【问题描述】:

我正在使用 MVC5 并试图让客户端验证触发而不是执行服务器跳闸。验证在服务器端有效,但我无法让客户端使用 jquery 2.1.1 触发

我正在使用捆绑包来注册脚本。在客户端源代码中,脚本似乎被正确引用。

<script src="/Scripts/jquery-2.1.1.js"></script>
<script src="/Scripts/jquery.validate.js"></script>
<script src="/Scripts/jquery.validate.unobtrusive.js"></script>

在 web.config 中,我启用了客户端并且不显眼

<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />

需要验证的输入之一似乎是从模型中提取数据注释,所以我认为这不是问题

<input class="input-validation-error form-control" data-val="true"
 data-val-number="The field UpdateValue must be a number."
 data-val-range="Please enter a number between 1 and 28"
 data-val-range-max="28" data-val-range-min="1"
 data-val-required="An update value is required" id="tbUpdateValue"
 name="UpdateValue" type="text" value="0" aria-required="true" aria-invalid="true">`

我可以让客户端触发的唯一方法是添加对旧版本 jQuery 的引用。我在视图顶部添加了这个

<script src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.min.js"></script>

知道如何让它与 2.1.1 一起使用或正在做一些愚蠢的事情吗?

【问题讨论】:

  • 哦,当我说它不会触发时。我的意思是它去控制器和服务器处理验证
  • 你检查的是什么浏览器?,Jquery 2.x 不支持 IE 6、7 或 8。
  • 我使用的是 Chrome 35.0.1916.153
  • 您是否通过 nuget 更新了 jquery?当您更新 Jquery 时,您是否相应地更新了 jquery.validate 和 jquery.validate.unobtrusive ?
  • Read the documentation。 jQuery Validate 没有用 jQuery 版本 2 测试过,所以可能用unobtrusive,它不会工作。

标签: jquery asp.net-mvc jquery-validate unobtrusive-validation


【解决方案1】:

这可能是 jQuery 冲突。尝试像这样在 jQuery 中使用 noConflict:

var $j = jQuery.noConflict();

【讨论】:

    【解决方案2】:

    我也有同样的问题。看起来 jQuery 验证不适用于 jQuery 2.1.1

    也许你应该试试

    https://www.nuget.org/packages/Microsoft.jQuery.Unobtrusive.Validation/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-05
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多