4 votes

La boîte de texte d'entrée onchange ne se déclenche pas lorsque des données sont affectées à la boîte de texte d'entrée.

Voici ma page HTML

<script>
function set()
{
document.getElementById("txt").value++;
}
</script>
<input id="txt" type="text" onchange="javascript:alert('txt changed');" value="0">
<br/>
<input type="button" onclick="set()" value="Set Data"/>

Lorsque j'appuie sur le bouton, la valeur de la zone de texte change, mais l'événement onchange ne se déclenche pas, mais lorsque je saisis manuellement une valeur dans la zone de texte, l'événement onchange se déclenche.

Tout ce que je veux, c'est appeler une fonction JavaScript lorsque les données sont modifiées dans la zone de texte lorsque l'on clique sur un bouton.

Pouvez-vous nous aider ?

3voto

Vinay B R Points 5026

Vous pouvez déclencher un changement à partir du code en utilisant document.getElementById("txt").onchange(); après la modification de la valeur par le code

UPDATE

changez votre fonction set pour prendre l'id de la zone de texte

function set(textboxid)
{
    var tb = document.getElementById(textboxid);
    tb.value++;
    tb.onchange();
}

0voto

Topera Points 4941

Il semble que ce soit un bug du navigateur. Avec firebug, j'ai enregistré tous les événements dans l'entrée. Tous les événements sont déclenchés lorsque vous changez la valeur avec la fonction set() ;

J'ai testé dans firefox.


Remarque : si ce n'est pas un bogue, c'est au moins une définition erronée du fonctionnement des événements.

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