Reputation: 14550
How do I create a rule for only positive whole numbers greater then 0 (ex. 1,2,3,4,5,etc)?
var form = $('#formClientLicense')[0];
$(form).validate();
var quantity = $(form).find("input[name='Quantity']")[0];
$(quantity).rules("add", {
required: true,
min: 1,
step: 1,
number: true,
messages: {
required: jQuery.validator.format("Required Field"),
number: "Not a number",
min: jQuery.validator.format("Please select positive number"),
step: jQuery.validator.format("Please select whole number (ex. 1,2,3,4)")
}
});
if ($(form).valid()) {
// run here
}
Upvotes: 3
Views: 7465
Reputation: 151
The easiest way to do it is
$( "#myform" ).validate({
rules: {
field: {
required: true,
digits: true
}
}
});
Ref : digits method | jQuery Validation Plugin --> https://jqueryvalidation.org/digits-method/
Upvotes: 2
Reputation: 8814
You can use a combination of min
and step
for that.
This way, it will only accept a multiple of 1, starting at 1.
$(quantity).rules("add", {
number: true
min: 1,
step: 1,
messages: {
number: "Not a number",
min: jQuery.validator.format("Please select positive number"),
step: "Enter a integer number."
}
});
You don't need minlenght
, as that is for strings.
Upvotes: 0
Reputation: 98738
For a postive whole number greater than zero, combine the min
rule with the integer
rule. The integer
rule can be found within the additional-methods.js
file.
$(quantity).rules("add", {
required: true,
min: 1,
integer: true,
messages: {
required: jQuery.validator.format("Required Field"),
min: jQuery.validator.format("Please select positive number"),
integer: jQuery.validator.format("Please select whole number (ex. 1,2,3,4)")
}
});
DEMO: jsfiddle.net/h6bsawqb/
Upvotes: 5