Bonjour à tous,
j'ai fait un petit formulaire et j'aimerais cacher avec JavaScript le submit si mon textarea est vide,
voici mon code:

<form method="post" action="#">
    <textarea id="champ"></textarea>
    <input type="submit" value="Envoyer" id="send"/>
</form>
<script type="text/javascript">
    champ = document.getElementById('champ');
    send = document.getElementById('send');
    send.disabled = true;
    champ.onchange = function(){
        if(this.value != '')
            send.disabled = false;
        else{
            send.disabled = true;
        }
    }
</script>

Sa fonctionne bien, mais pour afficher ou masquer le bouton "envoyer" il faut cliquer à coter du formulaire, ce qui est gainant...
Donc si quelqu'un a une solution, je suis preneur.
Merci d'avance.

3 réponses


mookymook
Réponse acceptée

onchange est appelé seulement à la perte du focus.

Essayes plutôt de surveiller l’évènement clavier :

<script type="text/javascript">
    champ = document.getElementById('champ');
    send = document.getElementById('send');
    send.disabled = true;
    champ.onkeydown = function(){
        if(this.value != '')
            send.disabled = false;
        else{
            send.disabled = true;
        }
    }
</script>
Grafikart
Réponse acceptée

remplace ton onchange par un onkeyup (je suis plus sur de l'evenement mais c'est un truc du genre :D)

mookymook
Réponse acceptée

Oui le keyup est plus judicieux que le keydow, car tu pourras récupérer la valeur.