J'ai un formulaire et je souhaite désactiver/activer son bouton de soumission selon que les champs de saisie du formulaire sont vides ou que du texte y a été entré. Je pense que cela signifie avoir un gestionnaire d'événements pour les champs de texte keydown
ou keypress
: lorsqu'il est déclenché, ce gestionnaire d'événements doit vérifier si les champs de texte d'entrée contiennent du texte et activer ou désactiver le bouton d'envoi en conséquence.Evénement de saisie de texte HTML
L'événement change
semble que cela devrait être plus utile que les événements keydown
ou keypress
, sauf qu'il ne se déclenche pas jusqu'à ce que le contrôle en question perd le focus, et ce bien est que: puisque l'utilisateur veut juste tapez quelque chose, puis cliquez sur le bouton soumettre, je veux un gestionnaire d'événements qui est tiré par le texte étant entré et non seulement lorsque le contrôle perd le focus.
Mes questions sont les suivantes:
- sont-
keydown
et/oukeypress
événements déclenchés avant ou après le texte correspondant a été inséré dans le champ de saisie de texte? - Les événements
keydown
et/oukeypress
sont-ils annulables (pouvez-vous les annuler pour empêcher la saisie du texte correspondant)?
Edit: Pour votre information, les tests de re-jQuery validation plug-in forment la validité sur place clé.
Si elles sont déclenchées avant que le texte ne soit entré, cela ne les rend-il pas inutiles aux fins pour lesquelles je voulais les utiliser (qui consistait à vérifier si les champs de saisie contenaient du texte)? Quel autre mécanisme puis-je utiliser à la place (pour activer/désactiver le bouton d'envoi selon que les champs de saisie contiennent du texte)? – ChrisW
Vous pouvez mettre un test en place pour vérifier s'il y a quelque chose dans le champ de saisie. – jjclarkson
Faire cela serait un peu plus tard que je le souhaitais: il est courant, dans une application de bureau au moins, d'activer/désactiver le bouton "OK" d'une boîte de dialogue en temps réel selon qu'elle est valide ou cliquable. Vous dites, au contraire, de laisser le bouton cliquable tout le temps (de sorte que onsubmit peut toujours être invoqué), mais de vérifier onsubmit (et je suppose afficher un message d'erreur pour dire qu'un champ est requis). Je me rends compte que c'est une manière commune/habituelle de le faire dans un navigateur; Je me demandais si la technologie (c'est-à-dire le comportement des événements disponibles) supportait même l'autre interface. – ChrisW