我正在使用Jquery Validation插件,但我无法正常工作。我想要验证的只是允许在字段中使用0到100的输入范围,不允许0.1,.5,-11.4。目前,如果我输入0.5,即使我设置范围:[0,100],它也会识别有效数字。
小提琴链接: https://jsfiddle.net/milacay/e4fe4hsz/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>
答案 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
需要消极,那么您就不会破坏它。
如何允许十进制数表示从0.5到50?
你已经这样做了;它是你在问题#1中抱怨的。
(显然,你不能同时允许和禁止十进制数字,所以不确定问题的这一部分究竟是什么。)
range