jQuery zone de texte de validation en utilisant à la fois sur keyup et flou
J'ai une zone de texte et la nécessité de valider les deux keyup et le flou des événements. Si je tape "X", les deux événements seront à feu et, évidemment, vous allez voir deux alertes sur le code ci-dessous. L'événement keyup est nécessaire, comme je l'ai peut déclencher une action basée sur une valeur valide et aussi besoin de garder le flou de l'événement dans le cas où la touche de Tabulation est pressé. L'objectif est d'afficher une alerte ici. \m/\m/
$("#txtLength").on('keyup blur', function (e) {
if ($(this).val().length > 0) {
switch (true) {
case !$.isNumeric($(this).val()):
alert("Please enter a numeric value.");
$(this).focus();
break
case ($(this).val() < 5) || ($(this).val() > 10):
alert("Length must be a numeric value between 5 and 10.");
$(this).focus();
break;
default:
}
}
});
- si vous le faites sur
keyup
, vous n'avez pas besoin de validation surblur
sauf si vous faites totalement différentes surblur
. - Vous n'en avez pas besoin. Si vous utilisez uniquement l'événement keyup, vous obtiendrez l'alerte et il sera mis l'accent. Toutefois, l'utilisateur peut maintenant l'Onglet de la zone de texte en laissant une valeur non valide derrière.
- votre énoncé est faux ici. Si je tape "X", les deux événements seront à feu jsfiddle.net/EbLdf .. Seulement keyup événement est déclenché.
- Vous souhaitez valider sur le ONKEYPRESS et événements ONCHANGE.
Vous devez vous connecter pour publier un commentaire.
Merci pour tous vos commentaires. Quelques bonnes idées ont aidé à trouver une solution. Coller à la rubrique à partir d'éviter l'affichage de deux alertes à l'aide .sur pression de touche et flou, voici ce que j'ai fini par faire.
Il semble que cela ne fera que causer des problèmes si vous utilisez un alert() ou une autre méthode qui interrompt l'utilisateur. Utiliser un formulaire en ligne de la validation, et l'utilisateur ne sera probablement jamais d'avis. Aussi, votre chèque de la valeur n'a pas de travail, car "6" n'est pas > 5 ou < 10. Je le fixe que l'utilisation de parseInt:
html:
script