輸入框失去焦點事件和按鈕點擊事件衝突

場景是這樣的:點擊輸入框失去焦點會觸發驗證方法,點擊提交按鈕的時候也會觸發驗證方法,若是用戶點擊輸入框後點擊提交按鈕就會同時觸發失去焦點方法和提交按鈕方法,這樣就會觸發兩次驗證。事件

我想寫成只觸發一次驗證,在開發過程當中我發現
在移動端當失去焦點和點擊事件同時發生的時候,會先執行失去焦點事件,而後再執行點擊事件,也就是說失去焦點事件的執行時間比點擊事件快。當我按這個邏輯寫好了以後在pc端也按這個邏輯去寫結果有問題,由於在PC端失去焦點和點擊事件同時發生的時候,只執行失去了焦點事件,點擊事件沒有執行,因此我在移動端的那些寫法放到PC端就行不通了。開發

解決辦法:
給按鈕設置 mousedown 事件,而後在 mousedown 事件中event.preventDefault()阻止默認事件發生 就能夠了。
若是不組止默認事件的話mouseDown會先執行,而後再到失去焦點事件執行。event

ps:若是有說的不對的地方,歡迎交流~sed

相關文章
相關標籤/搜索