【问题标题】:Why aren't my validations showing up?为什么我的验证不显示?
【发布时间】:2011-11-23 21:23:44
【问题描述】:

我正在使用 Asp.Net MVC 3,并且我正在通过 jquery 在生命周期的后期添加一个验证器,其中 jquery.validate 使用 [此代码][1]:

感谢redsquare的回答,我添加了这样的方法:

$.validator.addMethod(
        "regex",
        function(value, element, regexp) {
            var check = false;
            var re = new RegExp(regexp);
            return this.optional(element) || re.test(value);
        },
        "Please check your input."
);

现在您需要做的就是验证任何正则表达式:

$("Textbox").rules("add", { regex: "^[a-zA-Z'.\s]{1,40}$" })

验证工作正常,但实际消息没有出现在任何地方......我做错了什么?谢谢。

【问题讨论】:

  • +nas 在添加规则之前是否调用了 $(form).validate()?

标签: jquery asp.net-mvc asp.net-mvc-3 jquery-validate


【解决方案1】:

我有同样的问题。从未找到导致问题的原因,我最终通过将验证属性分配给我的输入字段来使用 MVC 不显眼的验证:

所以假设你有一个#Textbox 输入:

<input class="text-box" id="Textbox" name="Textbox" type="text" value="">

打开验证的简单方法就是分配 data-val-* 属性:

$(document).ready(function(){
   $('#Textbox').attr('data-val','true'); // turn on validation
   $('#Textbox').attr('data-val-regex','The input does not match the validation pattern'); // message to show when validation fails
   $('#Textbox').attr('data-val-regex-pattern',"@^[a-zA-Z&#39;.\s]{1,40}$"); //regex
});

这是他们在我的网站上做的方式,它有效。您调用验证的方式可能与 Microsoft 实现 jQuery 验证器的方式相冲突,但是我找不到它在哪里

【讨论】:

    【解决方案2】:

    您是否将它与 mvc 元模型一起使用?如果是这样,请确保您拥有

    @Html.ValidationMessageFor(m => m.obj)
    

    就在您的文本框旁边

    希望这就是你的意思:)

    【讨论】:

    • 不,因为我在呈现页面后做得很好,所以这不是我想要的。
    【解决方案3】:

    好吧,假设您的表单的选择器和验证功能设置正确,它应该可以正常工作,可能是这些问题吗?发布其余的验证会很有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-04
      • 2019-12-31
      • 1970-01-01
      • 1970-01-01
      • 2012-12-30
      • 2012-04-03
      • 1970-01-01
      • 2021-05-09
      相关资源
      最近更新 更多