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

时间:2018-02-16 18:29:23

标签: jquery jquery-validate

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

小提琴链接: 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或更高。
  3. 提前致谢,

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

1 个答案:

答案 0 :(得分:2)

  

目前,如果我输入<div ng-app=""> <form> First Name: <input type="text" ng-model="firstname"> </form> <h1>You entered: {{firstname}}</h1> </div> ,即使我设置了范围:0.5,它也能识别出有效数字。

那是因为[0, 100]规则接受十进制数字。由于range大于零,因此有效。

  

我怎样才能允许整数从0到100(不是44.3,但44.0可以)?

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

integer

默认$( "#myform" ).validate({ rules: { field: { required: true, integer: true, // <- here range: [0, 100] } } }); 规则在这种情况下应该也可以正常工作,因为您没有任何负数。 IMO,因为您只想排除十进制数字,请坚持digits,这样如果您的integer需要消极,那么您就不会破坏它。

DEMO:jsfiddle.net/e4fe4hsz/5/

  

如何允许十进制数表示从0.5到50?

你已经这样做了;它是你在问题#1中抱怨的。

(显然,你不能同时允许和禁止十进制数字,所以不确定问题的这一部分究竟是什么。)

range

DEMO:jsfiddle.net/e4fe4hsz/7/