jquery验证范围不适用于负数

时间:2015-06-16 13:33:21

标签: javascript jquery jquery-validate

我正在使用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);
});

演示: https://jsfiddle.net/guzzjty1/5/

2 个答案:

答案 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"/>

Demo

答案 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"));
    });