2011-08-02 61 views
11

UPDATE@BrendanEich 形式的onsubmit對提交按鈕的onclick

@mplungjan的onclick的只提交掉出來,作爲一個按鈕;表單提交顯然更好。


這將是有史以來使用一個提交按鈕的onclick確定形式是否應該提交的原因是什麼?

我堅信

  1. 之前執行的東西提交和取消在錯誤的情況下提交,該表單的onsubmit事件是把它
  2. 如果您使用的onclick一個提交了明顯的地方按鈕,然後決定使用type =「image」事件處理程序將在許多瀏覽器中失敗
  3. 如果將提交更改爲按鈕,則必須將提交添加到onclick事件處理程序中。

我在尋找強烈的理由,喜歡使用提交按鈕的onclick事件通過窗體的onsubmit。

更新:請不要說我個人很清楚表單提交和驗證的許多問題。
例如,通過JavaScript的提交將不會觸發的onsubmit http://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> 

此外,IE瀏覽器將不會觸發的onclick如果你打我的小提琴在表單中輸入


歷史:

這裏進入討論

html button not clickable without being disabled

我一直在使用一個提交按鈕任何東西的onclick的強烈反感由於許多 年看到這在許多瀏覽器,大多是老版本的IE瀏覽器的不行的。 我列出了一些明顯的原因,但我相信他們不會說服硬化的用戶。

難道SO的社區能幫我把這個釘在牆上嗎,就像他們釘了w3schools一樣? 也可隨時發表評論,以便我如何以可接受的方式來說明這個問題。


1:因爲NS2.x的天IE3.02

+1

看起來更像一個討論,而不是一個問題......看出來!哦,我同意使用提交事件。 :-) – RobG

+0

我同意使用表單的提交 - 這也包括您通過輸入鍵而不是提交按鈕提交。 – nnnnnn

+0

可能的重複:http://stackoverflow.com/questions/4529012/should-i-use-the-inputs-onclick-or-the-forms-onsubmit-event-to-validate-form-fi –

回答

12

形式的onsubmit是一個比較正確的做法,原因很簡單,一個形式,也可以用<ENTER>鍵提交,而不僅僅是通過點擊提交按鈕。

+0

另外,Javascript。 – Paddy

+0

那也是:)但我傾向於舉一個更實際的例子。雖然好電話。 –

+0

只爲了完整性,爲了未來的遊客。 :)但是,是的,你覆蓋了99%的用例,這就是爲什麼我只是評論你的答案,而不是添加我自己的答案。 – Paddy