警报显示两次。如何限制?

时间:2010-05-17 04:43:48

标签: javascript javascript-events

<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>

我遇到了一个问题:当输入值(例如:test;)进入textareaName字段时,测试函数总是运行一次。请告诉我这种方式只能运行一次。

1 个答案:

答案 0 :(得分:1)

因为您要将test功能添加到onKeyPress(所以每次按键),onChange(所以每次更改时)和onBlur(每当您移动时)到另一个领域)

它完全按照你的要求去做,你应该删除其中一个事件处理程序。