将 return 键更改为制表符功能
Chaning return key into tab function
我有一个客户想要 Enter/Return 键执行与表单字段上的 Tab 键相同的功能。
到目前为止,这是我的代码。它不会工作。有人知道为什么吗?
<script>
$('input, select').live('keydown', function(e) {
if (e.keyCode === 13) {
if (e.shiftKey) {
var focusable = form.find('input,a,select,button,textarea').filter(':visible');
focusable.eq(focusable.index(this)-1).focus();
}
else {
var focusable = form.find('input,a,select,button,textarea').filter(':visible');
focusable.eq(focusable.index(this)+1).focus();
return true;
}
}
});
</script>
- 您需要使用
preventDefault();
来阻止回车键的默认行为
- 你把
form.find
放在那里,但我没看到任何地方设置 form
。也许试试 $('form')
?
我已经设置了一个基本 js fiddle 供您查看。这是您想要的功能吗?
$('input, select').on('keydown', function (e) {
if (e.keyCode === 13) {
e.preventDefault();
if (e.shiftKey) {
var focusable = $('form').find('input,a,select,button,textarea').filter(':visible');
focusable.eq(focusable.index(this) - 1).focus();
} else {
var focusable = $('form').find('input,a,select,button,textarea').filter(':visible');
focusable.eq(focusable.index(this) + 1).focus();
return true;
}
}
});
请注意 .live()
已弃用,您可以只使用 .on()
我有一个客户想要 Enter/Return 键执行与表单字段上的 Tab 键相同的功能。
到目前为止,这是我的代码。它不会工作。有人知道为什么吗?
<script>
$('input, select').live('keydown', function(e) {
if (e.keyCode === 13) {
if (e.shiftKey) {
var focusable = form.find('input,a,select,button,textarea').filter(':visible');
focusable.eq(focusable.index(this)-1).focus();
}
else {
var focusable = form.find('input,a,select,button,textarea').filter(':visible');
focusable.eq(focusable.index(this)+1).focus();
return true;
}
}
});
</script>
- 您需要使用
preventDefault();
来阻止回车键的默认行为
- 你把
form.find
放在那里,但我没看到任何地方设置form
。也许试试$('form')
?
我已经设置了一个基本 js fiddle 供您查看。这是您想要的功能吗?
$('input, select').on('keydown', function (e) {
if (e.keyCode === 13) {
e.preventDefault();
if (e.shiftKey) {
var focusable = $('form').find('input,a,select,button,textarea').filter(':visible');
focusable.eq(focusable.index(this) - 1).focus();
} else {
var focusable = $('form').find('input,a,select,button,textarea').filter(':visible');
focusable.eq(focusable.index(this) + 1).focus();
return true;
}
}
});
请注意 .live()
已弃用,您可以只使用 .on()