0

我的页面上有 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" });
4

2 回答 2

0

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

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

谢谢您的帮助!

于 2013-02-13T09:01:04.680 回答
-2

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

$("form").validate({
rules: {
    field1: {
        required: function() {
        return (
                                $("#fld1").val() != "" || 
                                ($("#fld1").val() != "" &&
                                (
                                 $("#fld1").val() < minVal  ||
                                 $("#fld1").val() > maxVal
                                ))
                     );
        }
    }
},....
于 2013-02-12T17:27:14.073 回答