Disable Text Entry In
I am making a simple web app. At one part of it, I have included an input box of type='number' Anyhow, when I run the code in my latest Google
Solution 1:
You can use JavaScript (e.g. with jQuery) to allow only specific characters:
// Catch all events related to changes
$('#textbox').on('change keyup', function() {
// Remove invalid charactersvar sanitized = $(this).val().replace(/[^0-9]/g, '');
// Update value
$(this).val(sanitized);
});
Here is a fiddle.
Same thing with support for floats:
// Catch all events related to changes
$('#textbox').on('change keyup', function() {
// Remove invalid charactersvar sanitized = $(this).val().replace(/[^0-9.]/g, '');
// Remove the first point if there is more than one
sanitized = sanitized.replace(/\.(?=.*\.)/, '');
// Update value
$(this).val(sanitized);
});
And here is another fiddle.
Update: Although you might not need this, here is a solution that allows a leading minus sign.
// Catch all events related to changes
$('#textbox').on('change keyup', function() {
// Remove invalid charactersvar sanitized = $(this).val().replace(/[^-0-9]/g, '');
// Remove non-leading minus signs
sanitized = sanitized.replace(/(.)-+/g, '$1');
// Update value
$(this).val(sanitized);
});
And now a final solution that allows only valid decimals (including floats and negative numbers):
// Catch all events related to changes
$('#textbox').on('change keyup', function() {
// Remove invalid charactersvar sanitized = $(this).val().replace(/[^-.0-9]/g, '');
// Remove non-leading minus signs
sanitized = sanitized.replace(/(.)-+/g, '$1');
// Remove the first point if there is more than one
sanitized = sanitized.replace(/\.(?=.*\.)/g, '');
// Update value
$(this).val(sanitized);
});
Solution 2:
You can use HTML5 input type number to restrict only number entries:
<inputtype="number" name="someid" />
This will work only in HTML5 complaint browser. Make sure your html document's doctype is:
<!DOCTYPE html>
For general purpose, you can have JS validation as below:
function isNumberKey(evt){
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode > 31 && (charCode < 48 || charCode > 57))
returnfalse;
returntrue;
}
<input type="someid" name="number" onkeypress="return isNumberKey(event)"/>
If you want to allow decimals replace the "if condition" with this:
if (charCode > 31 && (charCode != 46 &&(charCode < 48 || charCode > 57)))
Post a Comment for "Disable Text Entry In "