onsubmit return false仍提交表單


博主之前遇到這樣的問題,是因為代碼有錯,改正之后就正常了。

但今天確定代碼沒錯,仍然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 submitlength, 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,改后就好了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM