964 votes

jQuery désactiver/activer le bouton "soumettre"

J'ai ce code html:

<input type="text" name="textField" />
 <input type="submit" value="send" />

Comment puis-je faire quelque chose comme ceci:

  • Lorsque le champ de texte est vide, la soumission doit être désactivé (disabled="disabled").
  • Quand quelque chose est tapé dans le champ de texte pour supprimer les personnes handicapées de l'attribut.
  • Si le champ de texte est vide à nouveau(le texte est supprimé), le bouton soumettre doit être désactivé de nouveau.

J'ai essayé quelque chose comme ceci:

$(document).ready(function(){
     $('input[type="submit"]').attr('disabled','disabled');
     $('input[type="text"]').change(function(){
            if($(this).val != ''){
               $('input[type="submit"]').removeAttr('disabled');
            }
     });
 });

..mais il ne fonctionne pas. Des idées? Merci.

1415voto

Eric Palakovich Carr Points 5487

Le problème est que l’événement change est déclenché uniquement lorsque le focus est déplacé loin de l’entrée. Essayez plutôt d’utiliser keyup :

168voto

cletus Points 276888
$(function() {
  $(":text").keypress(check_submit).each(function() {
    check_submit();
  });
});

function check_submit() {
  if ($(this).val().length == 0) {
    $(":submit").attr("disabled", true);
  } else {
    $(":submit").removeAttr("disabled");
  }
}

46voto

Paul Points 517

ou pour nous qui n’aiment pas utiliser jQ pour chaque petite chose :

30voto

Archie1986 Points 695

Eric, votre code ne semble pas fonctionner pour moi lorsque l’utilisateur saisit du texte puis supprime tout le texte. J’ai créé une autre version si quelqu'un a eu le même problème. ici ya go les gens :

15voto

sonusindhu Points 943

vous pouvez également utiliser quelque chose comme ceci :

Voici exemple Live

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X