Android上的文本输入字段通过关注下一个字段(如果有)来响应Enter键。在PC上的Chrome上,情况并非如此。
我希望用户在填写字段后按Enter键以及要触发的事件。在Android上,keydown
和keypress
事件似乎不可靠,但blur
效果很好。
我尝试创建keypress
事件以涵盖不会自动更改焦点的浏览器(例如,PC上的Chrome),如下所示:
$(".tn").keypress(function(e) {
var keycode = (e.keyCode ? e.keyCode : e.which);
if (keycode == '13') { $(".tn").blur() }
})
.on("blur")
事件涵盖所有类似的浏览器:
$(".tn").on("blur" , function(e) {
doSomething();
})
问题是,在移动设备上,keypress
有时有效,这会导致模糊事件触发两次。
我正在尝试这样的事情,但它没有用。
$(".tn").on( "blur" || "keypress" , function(e){
if (e.type == "keypress" && e.which == '13' || e.type == "blur"){
doSomething()
}
} )
我考虑使用$(".tn").once( "blur" , ...)
,但这不允许用户稍后返回修改条目。