博主之前遇到這樣的問題,是因為代碼有錯,改正之后就正常了。
但今天確定代碼沒錯,仍然return false提交表單。
總結網上各路大神的解釋:
1.onsubmit的作用是防止form只有一個input時提交表單
2.onsubmit的作用是先提交表單的動作再執行函數,最后無論函數返回正確與否都完成提交動作
具體真相讀者自行百度吧。我偏向2,但與我之前的情況相悖,也不完全確定。
做法:
只能麻煩一點將input submit換成input button了。fun里設置表單提交,不用多解釋了吧
但是,<button id="submit" onclick="check();">下一題</button>無論funciton里怎么寫代碼仍然提交
表單,再次查詢得知button只有IE才默認是button,其他瀏覽器和W3C規范都默認是submit
所以正確做法是:<button id="submit" type="button" onclick="check();">下一題</button>
但問題再次出現,form不提交了。再次查詢原因,發現這篇博文遇到了同樣的問題。原文:
點擊提交按鈕出現確認提示,但是確認后就沒反應了
但是將button的type改為submit卻又能提交
於是上jQuery API查找原因,看到以下這段文字頓時明白了:
Additional Notes:
Forms and their child elements should not use input names or ids that conflict with properties of a form, such as submit
, length
, or method
. Name conflicts can cause confusing failures. For a complete list of rules and to check your markup for these problems, see DOMLint.
大概意思是表單和其子元素不宜用一個表單的屬性的屬性作為name或id的名稱,如submit, length, 和 method等,否則會產生沖突,名稱沖突可能就會導致這種情況。
對號入座,我確實將button的id設置了submit,改后就好了