Reputation: 51
I have a textbox in HTML:
<form method="post" id="register-form" novalidate>
Session:
<input type="text" name="session" id="session"/>
<input type='submit' name='add' value='Save'/>
</form>
I want the date I enter in textbox to be between 2000 & 2014 and input like 212, 998 etc. should be rejected. How to validate it in JQuery?
<script>
$(function() {
$("#register-form").validate({
rules: {
session: {
required: true,
},
},
messages: {
session: "Please enter year",
},
submitHandler: function(form) {
form.submit();
}
});
});
</script>
Upvotes: 2
Views: 2423
Reputation: 40970
You can custom validation rule like this
$.validator.addMethod("validYear", function(value, element) {
return ((parseInt(value) > 1999) && parseInt(value) < 2015);
}, "Year should be between 2000-2014");
And then use this to define the rule
$("#register-form").validate({
rules: {
session: {
required: true,
validYear:true
},
},
Upvotes: 2
Reputation: 1158
Use range to specify the range.
$("#register-form").validate({
rules: {
session: {
required: true,
range:[2000,2014]
},
},
messages: {
session: "Please enter year",
},
submitHandler: function(form) {
form.submit();
}
});
Upvotes: 1
Reputation: 21470
You should use the "min" & "max" methods of the jQuery plugin like that:
$("#register-form").validate({
rules: {
session: {
required: true,
min: 2000,
max: 2014
},
},
messages: {
session: "Please enter year",
},
submitHandler: function(form) {
form.submit();
}
});
Sources: http://jqueryvalidation.org/min-method http://jqueryvalidation.org/max-method/
Upvotes: 2