0

javascript のみ (送信なし) で処理するフォームを作成しましたが、アラートをポップアップしたときに Google Chrome がすべての入力を消去していることに気付きました。いくつか実験した結果、javascript アラートがボタン要素から呼び出されたのか、入力要素から呼び出されたのかによって、Chrome の動作が異なることがわかりました。特に、HTML ボタンを使用すると、[OK] をクリックすると、入力ボックス内のテキストが削除されます。これは IE では発生しません。他のブラウザでは試していません。input 要素では発生しません。また、ボタン要素がフォームの外側にある場合は発生しません。

他の誰かがこれに気づいた、またはそうすべき理由を知っていますか?

<form>
<p>Enter some text in the input box, then click one of the buttons.</p>
<input type="text"><br>
<input type="button" onclick="alert('What happens to form values?')" value="Input button">    <br>
<button onclick="alert('What happens to form values?')">HTML button</button>
</form>
4

2 に答える 2

0

<button>をクリックすると、フォームが送信されます。
フォームを送信すると、ページがリロードされます。

これを防ぐreturn falseには、ハンドラーの最後に追加します。

于 2013-05-19T19:21:12.000 に答える
0

w3schools http://www.w3schools.com/tags/att_button_type.aspに基づく

要素には必ず type 属性を指定してください。ブラウザが異なれば、要素に異なるデフォルト タイプが使用される場合があります。

あなたの場合、buttonタイプsubmit

<button type="button" onclick="alert('What happens to form values?')">HTML button</button>
于 2013-05-19T21:47:48.780 に答える