我正在使用jquery验证来确保我的用户不会在文本字段中输入负值。
我已正确设置所有内容,并且验证适用于某些事情,而不是范围。如果我输入负值,验证仍然通过。 有没有人遇到过这个?
<input data-affects="Coaches" data-old="40" data-val="true" data-val-number="The field Maximum Students must be a number." data-val-range="The field Maximum Students must be between 0 and 200." data-val-range-max="200" data-val-range-min="0" id="NumStudentsMax" name="NumStudentsMax" type="number" value="40" aria-invalid="false" class="valid"/>
var foo = null;
$("input").blur(function(e){
foo = $("form").validate($(this));
alert(foo.errorList.length > 0);
});
答案 0 :(得分:1)
将min="0"
添加到您的输入中: -
<input data-affects="Coaches" data-old="40" data-val="true" data-val-number="The field Maximum Students must be a number." data-val-range="The field Maximum Students must be between 0 and 200." data-val-range-max="200" data-val-range-min="0" id="NumStudentsMax" name="NumStudentsMax" min="0" type="number" value="40" aria-invalid="false" class="valid"/>
答案 1 :(得分:0)
似乎问题是由于html验证和不显眼的验证变得更加内联。正如Mohit所提到的,它现在适用于'min'属性。
as asp.net mvc添加了data-val-range-min值。我的快速修复只是取了那个值并使用javascript
插入了一个具有相同值的'min'属性 //fix validator for range
$("[data-val-range-min]").each(function (e) {
var t = $("[data-val-range-min]:eq("+e+")")
t.attr("min", t.attr("data-val-range-min"));
});
$("[data-val-range-max]").each(function (e) {
var t = $("[data-val-range-max]:eq(" + e + ")")
t.attr("max", t.attr("data-val-range-max"));
});