0

ボタンの有無にかかわらず<form>、キーを押すとその囲みフォームが送信されることを私は知っています。ただし、タグが存在しない場合でも、IE は送信しています (具体的には、遭遇した最初のボタンをクリックします) 。<input>submitEnter<form>

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <button onclick="alert('button 1 clicked')">button 1</button>
    <button onclick="alert('button 2 clicked')">button 2</button>
    <input type="text" />
</body>
</html>

Plunkrの上記のマークアップ。

フィールド内で「 」を押すと、「ボタンEnter1がクリックされました」アラートが表示されます。input

タグで囲んだら投稿<input>していません。<form>

プランカー

この動作は、IE9 および IE 10 でも観察されます (他のバージョンはテストしていません)。これは IE のバグですか、そうでない場合、これを止めるにはどうすればよいですか?

更新:追加するとtype="button"、上記の動作は観察されません。<button>タグのデフォルトの動作はsubmitですか? そして、IEだけがこのように動作していますか?

4

2 に答える 2

1

を追加するとtype="button"、上記の動作は観察されません。タグのデフォルトの動作は送信ですか? そして、IEだけがこのように動作していますか?

この回答type="button"は、追加がこの効果を引き起こさないことを特定するのに役立ちました

于 2013-09-28T08:17:06.183 に答える
0

「return false;」を追加することで、IE がフォームを送信しないようにすることができます。onclickイベントで。コードは次のとおりです。

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
   <button onclick="alert('button 1 clicked'); return false; ">button 1</button>
   <button onclick="alert('button 2 clicked'); return false; ">button 2</button>
   <input type="text" />
</body>
</html>

さらに、 'return false'を追加することで、[送信] ボタンがフォームを送信しないようにすることもできます。

于 2013-09-28T08:17:45.297 に答える