从Jquery中的元素中删除验证

时间:2013-02-12 17:08:49

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

我的页面上有jquery验证(使用twitter bootstrap),我使用以下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" });

2 个答案:

答案 0 :(得分:0)

我找到了解决方案......如果你使类型可以为空,它就可以了......

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

感谢您的帮助!

答案 1 :(得分:-2)

我发布了关于“必需”验证的黑客攻击。 如果field为空,则返回所需的true的反面,否则如果value超出范围则返回true。也许你需要个性化默认所需的消息,为了UX的缘故

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