2013-10-21 18 views

回答

4

可以取消元素,它是在提交這種情況下,通過返回假的默認事件;

增加:

如果屬性未指定,或者如果屬性被動態地改變到一個空的或無效值,按鈕將表現爲一個提交。由於您的按鈕爲have not specified type attribute,因此它的行爲類似於提交。

+2

的確如此,但問題是「爲什麼會發生?」不是「我怎樣才能阻止它?」 (儘管後者是隱含的)。 –

+0

@DavidThomas:默認事件是提交這是通過返回false取消。我會更新答案以使其更清楚。 – Kaf

6

因爲按鈕的默認類型是submit。見https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button

出於這個原因,你必須阻止這種行爲無論是通過JS,或通過設置其類型button

<button id="theme" onclick="setThemeColor(this)" type="button">#</button> 
+0

謝謝。這很有幫助,但jeez,鈕釦在過去的表現並不像這樣,當然...... – MSC

1

,如果你使用input標籤指定按鈕時,它不會發生。奇怪而真實。

如:

<input type="button" id="theme" onclick="setThemeColor(this)" /> 

檢查演示在這裏:http://jsfiddle.net/Kjk4y/