i'm making some input mask that allows only float number. But current problem is I can't check if multiple dots entered. Can you check those dots and prevent it for me?
Live Code: http://jsfiddle.net/thisizmonster/VRa6n/
$('.number').keypress(function(event) { if (event.which != 46 && (event.which < 47 || event.which > 59)) { event.preventDefault(); if ((event.which == 46) && ($(this).indexOf('.') != -1)) { event.preventDefault(); } } });
1. Using <input type="number"> The standard solution to restrict a user to enter only numeric values is to use <input> elements of type number. It has built-in validation to reject non-numerical values.
jQuery: Code to allow numbers and decimal values in the textbox. Here in our 2nd textbox, we added allow_decimal class and on its event will allow a user to enter decimal values.
jQuery validator also supports decimal validation using range method. factor: { required: true, range:[0.08,20.09] }, Read more here and demo here.
You can check for the period in the same statement.
Also, you need to use the val
method to get the value of the element.
Also, you want to check for the interval 48 to 57, not 47 to 59, otherwise you will also allow /
, :
and ;
.
$('.number').keypress(function(event) { if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) { event.preventDefault(); } });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With