ここで面白い問題があります。
onchangeイベントがリンクされたテキストエリアがあります。次に、onclickイベントにリンクされたボタンがあります。
テキストエリアに配置されるテキストは、onchangeイベントがテキストエリアでトリガーされたときに処理されます。これは通常、テキストエリアの外側をクリックしたときに発生します。
私がしたことは次のとおりでした:
- textareaにテキストを入力しました。
- 入力した直後にボタンをクリックして、ボタンのonclickイベントをトリガーします
- 何も起こりませんが、ボタンをクリックするとテキストエリアのonchangeイベントがトリガーされますが、ボタン自体のonclickイベントはトリガーされません。
なんで?onchangeとonclickの両方がトリガーされることを期待していました。ボタンのクリックが「失われる」ことがないようにするために必要なことはありますか。最初のクリックでテキストエリアのonchangeが発生し、2回目のクリックでボタンのonclickがトリガーされるため、2回クリックする必要があることに気付きました。
以下のコードは例を示しています。以下のコードを試してください。テキストを入力し、そのボタンを直接クリックします。「textarea」ポップアップのみが表示されます。
<textarea onchange="processText();" name="mytext"></textarea>
<button onclick="processButton();">Hello</button>
<script language="Javascript">
function processText()
{
alert( 'textarea');
}
function processButton()
{
alert( 'button');
}
</script>