19

@BrendanEich からの更新 </p>

送信の@mplungjanonclickは、ボタンであることから外れます。フォームonsubmitの方が明らかに優れています。


フォームを送信する必要があるかどうかを判断するために送信ボタンのonclickを使用する理由はどれですか。

私はそれを強く信じています

  1. 送信前に何かを実行し、エラーが発生した場合に送信をキャンセルするには、フォームのonsubmitイベントがそれを置くための明白な場所です。
  2. 送信ボタンのonclickを使用し、後でtype = "image"を使用することにした場合、多くのブラウザでイベントハンドラが失敗します
  3. 送信をボタンに変更する場合は、onclickイベントハンドラーにも送信を追加する必要があります。

フォームのonsubmitよりも送信ボタンのonclickイベントを使用することを好む強い理由を探しています。

更新:私はフォームの送信と検証に関する多くの問題を個人的によく知っていることに注意してください。

たとえば、javascriptで送信しても、onsubmithttp://jsfiddle.net/mplungjan/3A4Ha/はトリガーされません

<form onsubmit="alert('onSubmit called')">
    <input type="text" value="This will submit on enter but in IE the onclick is not triggered" style="width:100%"/><br/>
    <input type="submit" onclick="alert('Clicked')" />
</form><br />
<a href="#" onclick="alert('Submitting by script'); return false">Submit by script will not trigger onsubmit</a>

また、私のフィドルのフォームでEnterキーを押すと、IEはonclickをトリガーしません


歴史:

ここで議論に入った

無効にしないとクリックできないhtmlボタン

多くのブラウザ、ほとんどが古いバージョンのIEでこれが機能しないことをも見てきたため、私は何に対しても送信ボタンのオンクリックを使用することを強く嫌っています。明らかな理由をいくつか挙げましたが、それらは頑固なユーザーを納得させるものではないと確信しています。

SOのコミュニティは、w3schoolsを釘付けにしたように、これを壁に釘付けにするのを手伝ってくれますか?また、この質問を容認できる方法で表現する方法についても、遠慮なくコメントしてください。


1:NS2.xおよびIE3.02の時代から

4

2 に答える 2

20

<ENTER>送信ボタンをクリックするだけでなく、キーを使用してフォームを送信することもできるという単純な理由から、フォームの送信はより正しいアプローチです。

于 2011-08-02T09:16:20.397 に答える