我有一个沼泽标准的登录表单-一个电子邮件文本字段,一个密码字段和一个提交按钮的AIR项目,使用HTML/jQuery。当我在表单上按Enter键时,整个表单的内容消失了,但表单没有提交。有人知道这是Webkit的问题吗(Adobe AIR使用Webkit进行HTML),还是我把事情搞砸了?
我试着:
$('.input').keypress(function (e) {
if (e.which == 13) {
$('form#login').submit();
}
});
但是这既没有停止清除行为,也没有提交表单。没有与表单相关的操作——这可能是问题所在吗?我可以把一个javascript函数的行动?
我发现今天按回车键时,按键事件没有被触发,所以你可能想要切换到keydown()或keyup()代替。
我的测试脚本:
$('.module input').keydown(function (e) {
var keyCode = e.which;
console.log("keydown ("+keyCode+")")
if (keyCode == 13) {
console.log("enter");
return false;
}
});
$('.module input').keyup(function (e) {
var keyCode = e.which;
console.log("keyup ("+keyCode+")")
if (keyCode == 13) {
console.log("enter");
return false;
}
});
$('.module input').keypress(function (e) {
var keyCode = e.which;
console.log("keypress ("+keyCode+")");
if (keyCode == 13) {
console.log("Enter");
return false;
}
});
在键盘上输入“A Enter B”时控制台的输出:
keydown (65)
keypress (97)
keyup (65)
keydown (13)
enter
keyup (13)
enter
keydown (66)
keypress (98)
keyup (66)
在第二个序列中,您可以看到'keypress'丢失了,但是按下/释放keydown和keyup寄存器代码'13'。
根据jQuery的keypress()函数文档:
Note: as the keypress event isn't covered by any official specification, the actual behavior encountered when using it may differ across browsers, browser versions, and platforms.
在Server 2012 R2上的IE11和FF61上测试