Jquery 验证 - 范围 0 到 100 无法正常工作

Jquery Validation - Range 0 to 100 Not Working Correctly

我正在使用 Jquery 验证插件,但我无法使其正常工作。我想验证的是只允许在字段中使用 0 到 100 的输入范围,不允许 0.1、.5、-11.4。目前,如果我输入 0.5,它会识别一个有效数字,即使我设置范围:[0, 100]。

FiddleLink: https://jsfiddle.net/milacay/e4fe4hsz/3/

我有两个问题:

  1. 如何只允许从 0 到 100 的整数(不是 44.3,但 44.0 可以)?如果这不可能,我现在可以忍受 44.3。
  2. 如何允许十进制数从 0.5 到 50?例如,有效数字为 0.6、.7、0、3、49,但无效数字为 0.45、0.2、51 或更大。

提前致谢,

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Makes "field" required and between 0 and 100.</title>
<link rel="stylesheet" href="https://jqueryvalidation.org/files/demo/site-demos.css">

</head>
<body>
<form id="myform">
<label for="field">Required, minium 0, maximum 100:</label>
<input type="text" class="left" id="field" name="field">
<br/>
<input type="submit" value="Validate!">
</form>
<script src="https://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/jquery.validate.min.js"></script>
<script src="https://cdn.jsdelivr.net/jquery.validation/1.16.0/additional-methods.min.js"></script>
<script>
// just for the demos, avoids form submit
jQuery.validator.setDefaults({
  debug: true,
  success: "valid"
});
$( "#myform" ).validate({
  rules: {
    field: {
      required: true,
      range: [0, 100]
    }
  }
});
</script>
</body>
</html>

Currently, if I enter 0.5, it recognizes a valid number even though I set the range: [0, 100].

那是因为 range 规则接受小数。由于 0.5 大于零,因此有效。

How can I only allow whole number from 0 to 100 (Not 44.3, but 44.0 is OK)?

只需添加 integer 规则( the additional-methods.js file 的一部分)。

$( "#myform" ).validate({
    rules: {
        field: {
            required: true,
            integer: true,  // <- here
            range: [0, 100]
        }
    }
});

默认的 digits 规则在这种情况下应该同样有效,因为您没有任何负数。 IMO,因为你只想排除小数,坚持使用 integer 所以如果你的 range 需要变成负数,你就不会破坏它。

演示:jsfiddle.net/e4fe4hsz/5/


How can I allow decimal number says from 0.5 to 50?

您已经在这样做了;这就是您在问题 #1 中抱怨的内容。

(显然,您不能同时允许和禁止小数,所以不确定这部分问题的真正含义。)

$( "#myform" ).validate({
    rules: {
        field: {
            required: true,
            range: [0.5, 50]  // <- here
        }
    }
});

演示:jsfiddle.net/e4fe4hsz/7/