我的页面上有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" });
答案 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
))
);
}
}
},....