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