1

ページに入力テキストボックスとボタンがあります。テキストボックスにonchangeイベントがあり、ボタンがonclickです。各イベントは、完全に別個の無関係なメソッドをトリガーします。

問題は次のとおりです。ユーザーがテキストボックスに変更を加えると、すぐにボタンをクリックします。onchangeがトリガーされますが、onclickが失われます。これを回避できますか?両方のイベントが発生する必要があります。ありがとう

更新:ローカルで非常に簡単なテストを試しました:

<input type="text" onchange="alert1();"/>
<input type="button" onclick="alert2();"/>

ここで、jsは:

<script type="text/javascript">
function alert1()
{
alert("1");
}
function alert2()
{
alert("2");
}
</script>

テキストを変更してすぐにボタンをクリックすると、最初のイベントのみがトリガーされます。2番目のイベントを強制的に発生させる方法はありますか?

4

2 に答える 2

0

これを試して、

function showAlert1() {
    setTimeout(function(){ alert("ONE") }, 250);
}

function showAlert2() {
    setTimeout(function(){ alert("TWO") }, 250);
}​

ボタンの onclick をトリガーできるように、各関数の実行をバッファリングします。

于 2012-12-05T09:40:51.100 に答える
0

ユーザーが [OK] をクリックするまでスクリプトの残りの実行を一時停止するalertため、(他のモーダル ダイアログと同様) は少し特殊なケースです。これが、2 番目のハンドラーが失敗する理由です。

代わりにハンドラーで次のようなことを行った場合document.write('foo')、この問題は発生しません。

于 2012-12-05T08:45:18.350 に答える