我正在制作一个按键的系统,它会更改文本框。我只希望能够设置值X, x, E, e, /
我当前的jQuery代码是
$('.today').keyup(function(e) {
var self = $(this);
var currentInput = self.data('number');
var next = $(currentInput + 1);
var previous = $(currentInput - 1);
var keyCode = e.keyCode || e.which;
var num = self.data('number') + 1;
var nom = self.data('number') - 1;
if(('input.today[data-number="' + num +'"]').length && keyCode === 40)
$('input.today[data-number="' + num +'"]').focus()
else if(('input.today[data-number="' + nom +'"]').length && keyCode === 38)
$('input.today[data-number="' + nom +'"]').focus();
else if(('input.today[data-number="' + num +'"]').length && self.val().length == self.attr('size')) {
$('input.today[data-number="' + num +'"]').focus();
}
});
如果密钥是其中之一,我只希望聚焦框移动:X, x, E, e, /, UP, DOWN, LEFT, RIGHT
。如果值不是X, x, E, e, /
,那么不要在框中写入
答案 0 :(得分:2)
您可以检查按下的键以确定事件的进行方式。如果您不想在某些按键上显示文字,那么您可以从处理程序return false
或致电e.preventDefault()
:
if ($.inArray(e.keyCode, [69, 88, 191]) === -1) { // e, x, / respectively
e.preventDefault(); // don't print the character
}
您可以在此处获取JavaScript密钥代码列表:Key Codes。
答案 1 :(得分:2)
这可能会有所帮助:
$('.today').keyup(function(e) {
if(~[38, 39, 40, ...].indexOf(e.keyCode || e.which)) {
e.preventDefault();
return;
}
...
}
调用e.preventDefault()
的密钥。
您还拥有keyup事件源自e.target
的元素。
HTH