Vérification d'un input en temps réel
Bonjour à tous,
Comme l'explicite le titre du topic j'ai besoin de faire une vérification en temps réel de ce qui est entré dans un input.
En clair, par exemple dans notre cas, j'ai besoin de n'entrer que des valeurs numériques entières.
Voici ce qui est actuellement fait:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
$("input").live('keyup', function (e) {
if($(this).val().match("^[0-9]+$") == null){
$(this).val($(this).val().substr(0,($(this).val().length-1)));
}
});
$("input").live('keydown', function (e) {
var key = parseInt(e.which);
if (
(key < 48 || key > 57) &&
(key < 96 || key > 105) &&
(key < 37 || key > 40) &&
(key < 8 || key > 9)
) {
return false;
}
}); |
Donc il s'agit de quelque chose de relativement "moche" en considérant le fait que visuellement ce n'est pas beau, que si on reste appuyé sur une touche ça ne fonctionne pas, et qu'il y a vraiment beaucoup trop de trucs à gérer.
Donc je me penchais sur quelque chose de plus simple:
Code:
1 2 3 4 5 6
|
$("input").live('keydown',function(event){
if($(this).val().match("[0-9]+") == null){
event.preventDefault();
}
}); |
Donc ceci, concrètement, bloque la saisie si la regex de match pas.
Ma question serait: comment la débloquer ?
Ou comment trouver une solution qui fasse ce que je veux faire, sans passer par une multitude de cas en fonction des eventkey.
Merci d'avance pour vos réponses.
ZnhaarX.