Posted on 2009-08-24 13:46
itVincent 閱讀(3776)
評論(6) 編輯 收藏 所屬分類:
javascript
【關鍵詞】Button Form FireFox
【問題描述】
使用Firefox3.0+打開頁面,點擊了一個<button onclick="doWork()"></button>去執行doWork方法,但是doWork沒有執行,表單卻提交了。另外IE6、7沒有此問題。
【分析原因】
由于根據w3c標準<button>默認的type為submit,也就是說如果button沒有聲明type的話,那此button就是相當于一個submit,所以如果此button是在一個表單里的話,點擊它就會提交表單。然而IE6、7沒有嚴格按照此標準
實現,因此不會出現此問題。
【解決辦法】
有兩種解決方法
方法1:
在<button>中加入onclick="return false",這樣禁止點擊時提交表單
方法2:
在<button>中加入type="button",聲明為button,這樣表單也不會提交了
【避免此類問題的建議】
為了解決跨瀏覽器的問題,最好是使用<button type="button" >顯式聲明為一個button
*根據網友們的回復,加上<input type="button" />為建議解決方式