Chaning返回键进入tab功能

时间:2015-08-11 20:37:36

标签: javascript jquery javascript-events

我有一个客户希望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 个答案:

答案 0 :(得分:2)

  1. 您希望使用preventDefault();
  2. 阻止回车键的默认行为
  3. 您将form.find放在那里,但我没有看到form设置在任何地方。也许试试$('form')
  4. 我已经设置了一个基本的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()