鍍金池/ 問(wèn)答/HTML/ keydown和click調(diào)用相同方法,keydown不生效 ???

keydown和click調(diào)用相同方法,keydown不生效 ???

項(xiàng)目中
keydown判斷如果是 enter鍵就調(diào)用函數(shù)執(zhí)行搜索,
click是直接點(diǎn)擊搜索,
但是keydown就是不生效,請(qǐng)問(wèn)哪位大神可以給解解惑嘛?
執(zhí)行的函數(shù)都是同一個(gè)函數(shù),如果我直接調(diào)用函數(shù)是不能生效的,但是如果我把函數(shù)里的內(nèi)容拿到keydown里就可以使用了。

回答
編輯回答
淚染裳

圖片描述

2018年1月21日 13:32
編輯回答
帥到炸

猜測(cè)是Enter觸發(fā)了表單的submit,

如果一個(gè)form中只有一個(gè)單行input,則在enter的同時(shí)會(huì)提交表單

W3規(guī)定如下
clipboard.png

那么也就是說(shuō),在Enter keydown的同時(shí),觸發(fā)了提交表單的效果,頁(yè)面直接跳轉(zhuǎn)了(跳轉(zhuǎn)到form的action,為空的話就是本頁(yè))。

那么異步查詢的當(dāng)然就會(huì)被刷新事件給阻塞掉。

至于放在keydown里面就可以正常跳轉(zhuǎn)……猜測(cè)可能是事件的優(yōu)先?或者其他什么原因。沒(méi)有驗(yàn)證,懶得試了,你也沒(méi)給demo

依照上述的分析,解決方法就是form的onsubmit事件return false,或者類(lèi)似的手段,阻止自動(dòng)提交

2018年7月28日 18:18