在开发中越来越多的表单提交使用ajax,很多情况下也就不能使用系统自带的enter键提交功能,所以就需要用js模拟enter键提交。
这里使用jquery方法:
- 第一步获取键盘按键事件
- 第二步判断是否按下enter键(通过检测按键的ASCII,enter键为13)
- 如果是enter键,则执行你想要的方法
$(document).ready(function(e) {
$(this).keydown(function (e){
if(e.which == "13"){
//your code
}
})
});
但往往页面中我们可能不止有一个地方需要使用enter键,我们可能只是想要提交当前焦点所在的表单
所以,在获取了键盘事件之后,我们要判断当前页面交单是否在我们想要提交的表单里面
我们使用document.activeElement.id;方法获取当前焦点所在元素的ID
var focusActId = document.activeElement.id;
然后判断,这个id是否是我们需要提交的表单,如果是,则提交。
所以,结合enter事件,最终代码可以写成
$(document).ready(function(e) {
$(this).keydown(function (e){
if(e.which == "13"){
var focusActId = document.activeElement.id;
if(focusActId == 'topSearch'){
$("#topSearchBtn").click();
}
}
})
});