原生js阻止表單提交之 submit()方法

最近在測試ajax無刷先登錄時,遇到一個關於表單提交的問題,就是無論怎樣修改代碼,點擊提交按鈕後,表單總會自動提交,表單自動提交,就不會執行對應的js方法,也就無法實現無刷新登錄,之前也做過多次類似的效果,但卻沒有遇到過這樣的問題,當時的代碼如下

原生js阻止表單提交之 submit()方法

嘗試了很多網上說的方法,包括 onsubmit=return false; action=""或action="## 或登錄按鈕 變成 button類型,等等,問題還是沒有解決,最後只能先把表單form標籤去掉,這樣就相當於是點擊一個button來觸發一個js事件,這樣如果再出問題就有點說不過去了,果不其然,問題解決了.

原生js阻止表單提交之 submit()方法

那麼為什麼去掉form就好了呢,理論上一個標籤是不會影響js執行的,最後考慮是方法重名導致的衝突問題,於是把submit 方法該了下名字,問題解決了,雖然找到了原因,但總感覺不是太清晰,既然submit是內置方法,那麼重新改寫方法後,也應該執行最新的方法才對,

於是在百度了下,submit是js的內置方法 得到的結果基本上都是關於jQuery的submit方法,最後還是在一本js的書上找到了解釋,

submit()方法是form標籤獨有的方法,執行該方法和點擊效果是相同的,所以在寫js的時候最好不要用於系統相同的函數名稱,


分享到:


相關文章: