HTML:
<form id="myform">
<label for="field">Required, decimal number:</label>
<input class="left" id="field" name="field">
<br/>
<input type="submit" value="Validate!">
</form>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://jquery.bassistance.de/validate/jquery.validate.js"></script>
<script src="http://jquery.bassistance.de/validate/additional-methods.js"></script>
<script>
JS:
$( "#myform" ).validate({
rules: {
field: {
required: true,
number: true
}
}
});
This is requiring a valid number in field "field". However, when using comma as decimal separator, it doesn't work. Eg: 10,25 is not considered a valid number.
I took this example from the validation plugin You may also see a live JSFiddle here.
I guess I will have to convert the input (from comma to dot decimal separator) before it is validated, but how?
You can use the pattern rule to pass a custom regex pattern like
$("#myform").validate({
//for debug only
debug: true,
rules: {
field: {
required: true,
pattern: /^(\d+|\d+,\d{1,2})$/
}
},
messages: {
field: {
pattern: 'Please use the proper pattern'
}
}
});
Demo: Fiddle
If it is a repeated pattern create a custom validation rule
jQuery.validator.addMethod("mynumber", function (value, element) {
return this.optional(element) || /^(\d+|\d+,\d{1,2})$/.test(value);
}, "Please specify the correct number format");
$("#myform").validate({
//for debug only
debug: true,
rules: {
field: {
required: true,
mynumber: true
}
}
});
Demo: Fiddle
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments