2010-08-30 8 views
4

Ceci est ma page HTMLzone de texte entrée onchange ne se déclenche pas lorsque les données est affectée à l'entrée textbox

<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 zone de texte est en train de changer, et l'événement onchange ne se déclenche pas, mais quand je saisis la valeur manuellement dans la zone de texte, il déclenche l'onchange. Tout ce que je veux, c'est appeler une fonction JavaScript quand les données sont changées dans la zone de texte quand on clique sur un bouton.

Pouvez-vous m'aider?

Répondre

3

vous pouvez tirer onchange de code à l'aide document.getElementById("txt").onchange(); après la modification de la valeur par le code

MISE À JOUR

changement votre fonction définie pour prendre l'ID de la zone de texte

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

C'est une réponse rapide, mais mon problème est que j'ai 5-6 boîtes de texte avec des boutons séparés pour chacun. dans ce cas, je dois appeler cela dans chaque clic sur un bouton. toute autre alternative – Harsha

+0

vérifier la mise à jour –

0

Cette semble être un bug de navigateur. Avec firebug, j'ai enregistré tous les événements en entrée. Tous les événements sont déclenchés lorsque vous modifiez la valeur avec la fonction set();

J'ai testé dans firefox.


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