'Next' 的按键事件
Keydown event for 'Next'
我正在使用此代码来处理 tab
和 enter
输入键的按键事件。
$(document).on('keydown', ".className" , function(e) {
var keyCode = e.keyCode || e.which;
alert(keyCode) // does not work for 'next'
if (keyCode == 9) { //tab key // does not work for 'next'
e.preventDefault();
if( $(this).parents('tr').next('tr').length == 0){
$('.add_info').click();
}
$(this).parents('tr').next('tr').find('input:first').focus();
}
if (keyCode == 13) { //enter key
e.preventDefault();
$('.anotherField').focus();
}
});
tab
键的代码在移动浏览器上不起作用。数字键盘显示为 .className
字段,因为输入类型是 number
,因此它具有 Next
键和其他键。我尝试 alert(keyCode)
只是为了获取 Next
的键码,但事件没有触发。无论如何我可以覆盖 Next
键的默认行为吗?
我找不到触发 Next
事件的方法,所以我尝试了一种解决方法。
Next
关注页面上的下一个元素。当我的输入失去焦点时,我设置了一个标志。当下一个元素在这个元素之后聚焦时(如果设置了标志)然后我触发 tab
的代码块(当 tab
键被按下时我打算做什么 input
.
var from_class_name = 0;
$(document).on('keydown', ".className" , function(e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 9) { //tab key // does not work for 'next'
e.preventDefault();
if( $(this).parents('tr').next('tr').length == 0){
from_class_name= 0;
$('.add_info').click();
}
$(this).parents('tr').next('tr').find('input:first').focus();
}
if (keyCode == 13) { //enter key
e.preventDefault();
from_class_name= 0;
$('.anotherField').focus();
}
});
$('#divid').on('focusout', '.className', function(){
if( $(this).parents('tr').next('tr').length == 0){
from_class_name = 1;
}
});
$('.otherelement1, .otherelement2, .otherelement3, .otherelement4').on('focus', function(){
from_class_name = 0;
});
$('.nextElement').on('focus', function(){ //element which is focused when 'Next' is used
if(from_class_name == 1) { // the value is 1 when the .className loses focus and no other fields are focused right after it except .nextElement
from_class_name = 0;
$('.add_info').click();
}
});
我正在使用此代码来处理 tab
和 enter
输入键的按键事件。
$(document).on('keydown', ".className" , function(e) {
var keyCode = e.keyCode || e.which;
alert(keyCode) // does not work for 'next'
if (keyCode == 9) { //tab key // does not work for 'next'
e.preventDefault();
if( $(this).parents('tr').next('tr').length == 0){
$('.add_info').click();
}
$(this).parents('tr').next('tr').find('input:first').focus();
}
if (keyCode == 13) { //enter key
e.preventDefault();
$('.anotherField').focus();
}
});
tab
键的代码在移动浏览器上不起作用。数字键盘显示为 .className
字段,因为输入类型是 number
,因此它具有 Next
键和其他键。我尝试 alert(keyCode)
只是为了获取 Next
的键码,但事件没有触发。无论如何我可以覆盖 Next
键的默认行为吗?
我找不到触发 Next
事件的方法,所以我尝试了一种解决方法。
Next
关注页面上的下一个元素。当我的输入失去焦点时,我设置了一个标志。当下一个元素在这个元素之后聚焦时(如果设置了标志)然后我触发 tab
的代码块(当 tab
键被按下时我打算做什么 input
.
var from_class_name = 0;
$(document).on('keydown', ".className" , function(e) {
var keyCode = e.keyCode || e.which;
if (keyCode == 9) { //tab key // does not work for 'next'
e.preventDefault();
if( $(this).parents('tr').next('tr').length == 0){
from_class_name= 0;
$('.add_info').click();
}
$(this).parents('tr').next('tr').find('input:first').focus();
}
if (keyCode == 13) { //enter key
e.preventDefault();
from_class_name= 0;
$('.anotherField').focus();
}
});
$('#divid').on('focusout', '.className', function(){
if( $(this).parents('tr').next('tr').length == 0){
from_class_name = 1;
}
});
$('.otherelement1, .otherelement2, .otherelement3, .otherelement4').on('focus', function(){
from_class_name = 0;
});
$('.nextElement').on('focus', function(){ //element which is focused when 'Next' is used
if(from_class_name == 1) { // the value is 1 when the .className loses focus and no other fields are focused right after it except .nextElement
from_class_name = 0;
$('.add_info').click();
}
});