Tout rapide façon de définir un entrée de texte HTML ( `` ) pour autoriser uniquement les touches numériques (et '.') ?
Réponses
Trop de publicités?J'ai utilisé cela, c'est correct
http://www.javascript-coder.com/html-form/javascript-form-validation.phtml
Si vous êtes assez chanceux pour être en HTML5, vous pourriez être en mesure de s'en tirer avec
<input type="number">
Essayez input type=nombre pour voir la version HTML5 dans l'action.
Mais n'oubliez pas vous avez encore doit faire côté serveur de validation!
Utilisez ce DOM
<input type='text' onkeypress='validate(event)' />
Et ce script
function validate(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode( key );
var regex = /[0-9]|\./;
if( !regex.test(key) ) {
theEvent.returnValue = false;
if(theEvent.preventDefault) theEvent.preventDefault();
}
}
J'ai cherché longtemps et dur pour une bonne réponse, et nous avons désespérément besoin d' <input type="number"
, mais de courte durée, ces 2 sont les plus concis façons que je pouvais venir avec:
<input type="text"
onkeyup="this.value=this.value.replace(/[^\d]/,'')">
Si vous n'aimez pas la non-accepté le caractère montrant pour une fraction de seconde avant d'être effacée, la méthode ci-dessous est ma solution. Remarque les nombreuses conditions supplémentaires, c'est pour éviter la désactivation de toutes sortes de navigation et les touches de raccourcis. Si quelqu'un sait comment compactify cela, laissez-nous savoir!
<input type="text"
onkeydown="return ( event.ctrlKey || event.altKey
|| (47<event.keyCode && event.keyCode<58 && event.shiftKey==false)
|| (95<event.keyCode && event.keyCode<106)
|| (event.keyCode==8) || (event.keyCode==9)
|| (event.keyCode>34 && event.keyCode<40)
|| (event.keyCode==46) )">
Et un autre exemple, qui fonctionne bien pour moi:
function validateNumber(event) {
var key = window.event ? event.keyCode : event.which;
if (event.keyCode == 8 || event.keyCode == 46
|| event.keyCode == 37 || event.keyCode == 39) {
return true;
}
else if ( key < 48 || key > 57 ) {
return false;
}
else return true;
};
Aussi attacher à l'événement keypress
$(document).ready(function(){
$('[id^=edit]').keypress(validateNumber);
});
Et html:
<input type="input" id="edit1" value="0" size="5" maxlength="5" />