【问题标题】:Remove validation from element in Jquery从 Jquery 中的元素中删除验证
【发布时间】:2013-02-12 17:08:48
【问题描述】:

我的页面上有 jquery 验证(使用 twitter 引导),我使用以下 ASP.NET MVC 注释。

[DisplayName("Text)"),Range(100,35000)]
    public decimal Field { get; set; }

元素被添加:

@Bootstrap.TextBoxFor(x => x.Field, htmlAttributes: new {@class="ignore",id="field" })

问题是我想在这个字段中允许一个空值,但保留范围验证,以防写入非空值。

这是我的 javascript 代码:

$("#Field").on("keyup", function (e) {
        e.preventDefault();
        if ($(this).val() == "") {
            $(this).removeClass("input-validation-error");
            $(this).addClass("valid");
            $(this).next().html("");
            $(this).parent().parent().removeClass("error");
        }
    })

    $.validator.setDefaults({ ignore: ".ignore" });

【问题讨论】:

  • 引用“我想在这个字段中允许一个空值,但保持范围验证,以防写入非空值” ~验证输入元素但不使其成为required 仅意味着删除required 规则同时保留range 规则。
  • 另外,你为什么要创建一个keyup 函数来完成插件已经在做或能够做的一大堆事情?

标签: jquery asp.net twitter-bootstrap jquery-validate


【解决方案1】:

我找到了解决方案...如果您将类型设为可为空,它就可以工作...

[DisplayName("Text)"),Range(100,35000)]
public decimal? Field { get; set; }

感谢您的帮助!

【讨论】:

    【解决方案2】:

    我向您发布了有关“必需”验证的技巧。 这个想法是如果字段为空,则返回所需的 true 的反面,否则如果值超出范围,则返回 true。为了用户体验,也许您还需要个性化默认所需的消息

    $("form").validate({
    rules: {
        field1: {
            required: function() {
            return (
                                    $("#fld1").val() != "" || 
                                    ($("#fld1").val() != "" &&
                                    (
                                     $("#fld1").val() < minVal  ||
                                     $("#fld1").val() > maxVal
                                    ))
                         );
            }
        }
    },....
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-22
    • 1970-01-01
    相关资源
    最近更新 更多