我有一个问题,我似乎无法解决。
我有一个带有自定义样式按钮的表单(输入类型=按钮)。在文本字段中输入内容时,我希望人们能够按TAB键并转到按钮。但是,它不会使用制表符索引,因此我的解决方案是突出显示标签并更改CSS以使按钮具有新的边框颜色。但是,除了Firefox之外,任何浏览器中的按键边框颜色都不会改变。
这就是我所拥有的:
$(function() {
$("#email").bind("keypress", function(e) {
if (e.keyCode == 13) {
send();
return false;
};
if (e.keyCode == 9) {
$("#submit_btn").removeClass('submit1').addClass('submit1after');
};
});
};
第一个输入按键是序列化并通过电子邮件发送表格和所有内容。
我似乎无法让它为我的生活而工作。我究竟做错了什么?是否有更好的解决方案,我正在努力实现的目标?
感谢您抽出宝贵时间,
阿米克
答案 0 :(得分:3)
使用keydown
代替,对我有效(请参阅演示:http://jsfiddle.net/npGtX/2/)
$(function () {
$("#email").bind("keydown", function (e) {
if (e.keyCode == 13) {
send();
return false;
};
if (e.keyCode == 9) {
$("#submit_btn").removeClass('submit1').addClass('submit1after');
};
});
};
我也发现了这个:Suppressing keyPress for non-character keys?
当按键不是a时,按键不一定被触发 字符。因此浏览器可能不会触发退格事件F1, 向下键等。
答案 1 :(得分:1)
您可以使用keyup
事件和event
对象的which
属性,jQuery规范化which
属性并且它是跨浏览器:
$(function() {
$("#email").bind("keyup", function(e) {
if (e.which == 13) {
send();
return false;
};
if (e.which == 9) {
$("#submit_btn").toggleClass('submit1 submit1after');
};
});
};
答案 2 :(得分:0)
$(function() {
$("#email").keypress(function(e) {
if (e.keyCode == 13 || e.which== 13) {
send();
return false;
};
if (e.keyCode == 9 || e.which== 9) {
$("#submit_btn").removeClass('submit1').addClass('submit1after');
};
});
};