J'ai ce HTML:
<input type="text" name="textField" />
<input type="submit" value="send" />
Comment puis-je faire quelque chose comme ça:
- Lorsque le champ de texte est vide, la soumission doit être désactivée (désactivé = "désactivé").
- Quand quelque chose est tapé dans le champ de texte pour supprimer l'attribut désactivé.
- Si le champ de texte redevient vide (le texte est supprimé), le bouton d'envoi doit être à nouveau désactivé.
J'ai essayé quelque chose comme ça:
$(document).ready(function(){
$('input[type="submit"]').attr('disabled','disabled');
$('input[type="text"]').change(function(){
if($(this).val != ''){
$('input[type="submit"]').removeAttr('disabled');
}
});
});
… Mais ça ne marche pas. Des idées?
javascript
jquery
html
forms
kmunky
la source
la source
Réponses:
Le problème est que l'événement change ne se déclenche que lorsque le focus est éloigné de l'entrée (par exemple, quelqu'un clique sur l'entrée ou en tabule). Essayez plutôt d'utiliser les touches:
la source
input id="loginButton" type="submit" name="Submit" value="Login" disabled>
affichera un bouton désactivé avec les classes désactivées css.la source
Cette question a 2 ans mais c'est toujours une bonne question et c'était le premier résultat de Google ... mais toutes les réponses existantes recommandent de définir et de supprimer l' attribut HTML (removeAttr ("disabled")) "disabled", ce qui n'est pas la bonne approche. Il y a beaucoup de confusion entre attribut et propriété.
HTML
Le "désactivé" dans
<input type="button" disabled>
le balisage est appelé attribut booléen par le W3C .HTML contre DOM
Citation:
https://stackoverflow.com/a/7572855/664132
JQuery
En relation:
Pertinent:
Sommaire
Pour [...] modifier les propriétés DOM telles que l'état [...] désactivé des éléments de formulaire, utilisez la méthode .prop () .
( http://api.jquery.com/attr/ )
En ce qui concerne la partie désactivation lors du changement de la question: il existe un événement appelé "entrée", mais la prise en charge du navigateur est limitée et ce n'est pas un événement jQuery, donc jQuery ne le fera pas fonctionner. L'événement change fonctionne de manière fiable, mais est déclenché lorsque l'élément perd le focus. Donc, on pourrait combiner les deux (certaines personnes écoutent également la saisie et le collage).
Voici un morceau de code non testé pour montrer ce que je veux dire:
la source
Pour supprimer l'utilisation d'un attribut désactivé,
et pour ajouter l'utilisation des attributs désactivés,
Prendre plaisir :)
la source
ou pour nous qui n'aiment pas utiliser jQ pour chaque petite chose:
la source
eric, votre code ne semble pas fonctionner pour moi lorsque l'utilisateur entre du texte puis supprime tout le texte. j'ai créé une autre version si quelqu'un a rencontré le même problème. voilà les gens:
la source
Cela fonctionnera comme ceci:
Assurez-vous qu'il existe un attribut «désactivé» dans votre code HTML
la source
Voici la solution pour le champ de saisie de fichier .
Pour désactiver un bouton de soumission pour le champ de fichier lorsqu'un fichier n'est pas choisi, puis activez-le après que l'utilisateur a choisi un fichier à télécharger:
Html:
la source
vous pouvez également utiliser quelque chose comme ceci:
voici l' exemple Live
la source
Pour la connexion au formulaire:
Javascript:
la source
Si le bouton est lui-même un bouton de style jQuery (avec .button ()), vous devrez actualiser l'état du bouton afin que les classes correctes soient ajoutées / supprimées une fois que vous avez supprimé / ajouté l'attribut désactivé.
la source
Les réponses ci-dessus ne concernent pas également la vérification des événements de copier / coller basés sur le menu. Voici le code que j'utilise pour faire les deux. Notez que l'action se produit en fait avec un délai d'attente car les événements de coupure et passés se déclenchent avant le changement, le délai d'attente donne donc un peu de temps pour que cela se produise.
la source
Vanilla JS Solution. Cela fonctionne pour un formulaire entier non seulement pour une entrée.
En question, balise JavaScript sélectionnée.
Formulaire HTML:
Quelques explications:
Dans ce code, nous ajoutons un événement keyup sur le formulaire html et à chaque pression sur une touche, vérifiez tous les champs de saisie. Si au moins un champ de saisie que nous avons est vide ou ne contient que des caractères d'espace, nous attribuons la vraie valeur à la variable désactivée et désactivons le bouton de soumission.
Si vous devez désactiver le bouton Soumettre jusqu'à ce que tous les champs de saisie requis soient remplis - remplacez:
avec:
où required_inputs est déjà un tableau déclaré contenant uniquement les champs d'entrée requis.
la source
Nous pouvons simplement avoir if & else. Si votre entrée est vide, nous pouvons avoir
sinon nous pouvons changer le faux en vrai
la source
Désactiver:
$('input[type="submit"]').prop('disabled', true);
Activer:
$('input[type="submit"]').removeAttr('disabled');
Le code d'activation ci-dessus est plus précis que:
Vous pouvez utiliser les deux méthodes.
la source
J'ai dû travailler un peu pour l'adapter à mon cas d'utilisation.
J'ai un formulaire où tous les champs doivent avoir une valeur avant de soumettre.
Voici ce que j'ai fait:
Merci à tous pour leurs réponses ici.
la source
Veuillez consulter le code ci-dessous pour activer ou désactiver le bouton Soumettre
la source
regardez cet extrait de mon projet
$(this).attr('disabled', 'disabled');
la source
Tous les types de solutions sont fournis. Je veux donc essayer une autre solution. Simplement, ce sera plus facile si vous ajoutez un
id
attribut dans vos champs de saisie.Maintenant, voici votre
jQuery
la source
J'espère que le code ci-dessous aidera quelqu'un .. !!! :)
la source