将 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>
  1. 您需要使用 preventDefault();
  2. 来阻止回车键的默认行为
  3. 你把 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()