onsubmit return false仍提交表單

博主以前遇到這樣的問題,是由於代碼有錯,改正以後就正常了。html

但今天肯定代碼沒錯,仍然return false提交表單。jquery

總結網上各路大神的解釋:git

1.onsubmit的做用是防止form只有一個input時提交表單github

2.onsubmit的做用是先提交表單的動做再執行函數,最後不管函數返回正確與否都完成提交動做瀏覽器

具體真相讀者自行百度吧。我偏向2,但與我以前的狀況相悖,也不徹底肯定。dom

作法:函數

只能麻煩一點將input submit換成input button了。fun裏設置表單提交,不用多解釋了吧.net

可是,<button id="submit" onclick="check();">下一題</button>不管funciton裏怎麼寫代碼仍然提交code

表單,再次查詢得知button只有IE才默認是button,其餘瀏覽器和W3C規範都默認是submitorm

因此正確作法是:<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,改後就行了

相關文章
相關標籤/搜索