【问题标题】:jquery validation range not working with negative numberjQuery验证范围不适用于负数
【发布时间】:2015-06-16 13:33:20
【问题描述】:

我正在使用 jquery 验证来确保我的用户不会在文本字段中输入负值。

我已经正确设置了所有内容,并且验证适用于某些事情,而不是 a 范围。如果我输入一个负值,验证仍然通过。 有人遇到过吗?

 <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/

【问题讨论】:

  • 也可以尝试使用the latest version of the plugin,而不是5岁的。
  • 它在 Safari 中对我来说根本不起作用。所有正数和负数都将通过验证,就像 data-val-range-maxdata-val-range-min 完全被忽略一样。
  • @Sparky,这就是问题所在。烦人
  • 但这与您在 OP 中描述的问题不同。你说验证通过负数,但忘了提到验证也通过指定范围之外的任何数字。

标签: javascript jquery jquery-validate


【解决方案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

【讨论】:

  • 您的演示返回 true?但我认为不需要 min,因为 data-val-range-min 是验证所关注的
  • @LiamHT 他不需要data-val-range-min 只需min 就可以了
  • data-val-range-min 是 ASP.NET MVC 框架返回的。
  • @LiamHT 可能是,但我对此了解不多,但在简单的 html 中,它与 min 属性一起使用。谢谢
【解决方案2】:

似乎问题是由于 html 验证和不显眼的验证变得更加内联。正如 Mohit 所提到的,它现在可以使用 'min' 属性。

作为 asp.net mvc 添加 data-val-range-min 值。我的快速修复只是使用该值并插入一个具有相同值的“min”属性,使用 javascript

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 2012-01-12
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多