2010-05-17 4 views
0
<script language="Javascript"> 

function test(myObject, flag) 
{ 
if ((flag) || ((event.keyCode == 59) || (event.which == 59)) || ((event.keyCode == 44) || (event.which == 44))) 
{alert(myObject.value);} 
}  
function closeWin() 
{self.close();}  
</script>    

<form name='test'>   
<textarea name='textareaName' cols='44' rows='3' onChange='test(this, true);' --onKeyPress='test(this);' onBlur='test(this, true);' ></textarea>       
<input type='text' name='textName'>  
<input type='button' name='buttonName' onclick='closeWin();' value='Cancel'> 
</form> 

J'ai un problème: lorsque la valeur d'entrée (par exemple: test;) dans le champ textareaName, la fonction de test est toujours exécutée plus d'une fois. S'il vous plaît montrez-moi le chemin peut courir cette seule fois.L'alerte est affichée deux fois. comment restreindre?

+0

J'ai annulé un changement qui a foiré le formatage que j'ai fait. –

+0

Oui, j'ai également annulé un changement pour revenir à mes correctifs. Gah. S'il continue à annuler les changements, je renonce tout simplement –

+0

Et Dev annuler tous nos changements. LOL. J'abandonne. –

Répondre

1

Parce que vous ajoutez la fonction test-onKeyPress (pour chaque pression de touche), onChange (donc chaque fois qu'il change), et onBlur (chaque fois que vous passez à un autre champ)

Il fait exactement ce que vous avez dit À faire, vous devez supprimer l'un des gestionnaires d'événements.