繁体   English   中英

如何使用jQuery自动跳至下一个字段?

[英]How can I automatically tab to the next field using jQuery?

在jQuery中,如何触发用户切换到下一个输入字段的行为?

我已经试过了:

var e = jQuery.Event("keydown");
e.which = 9; // # Key code for the Tab key
$("input").trigger(e);

但是触发事件不会将光标移动到下一个字段。

我想我可以使用focus()手动移动光标,但是决定浏览器应该知道哪个字段应该是浏览器已经知道的操作,因此仅触发一个选项卡看起来更加干净。

有任何想法吗?

请参阅对此问题的公认答案。 例如,如果你希望在已经输入的字符一定数量的将焦点移动到下一个字段,你可以使用该代码在keyup事件和检查字符输入的号码。

该答案中的代码通过获取表单中的一组输入,找到所选输入并将1添加到所选输入的索引中,然后在具有该索引的元素上触发focus事件而起作用。

有一个JQuery插件可用:

http://www.mathachew.com/sandbox/jquery-autotab/

这是一个解决方案,可通过http://jqueryminute.com/set-focus-to-the-next-input-field-with-jquery/

$.fn.focusNextInputField = function() {
    return this.each(function() {
        var fields = $(this).parents('form:eq(0),body').find(':input').not('[type=hidden]');
        var index = fields.index( this );
        if ( index > -1 && ( index + 1 ) < fields.length ) {
            fields.eq( index + 1 ).focus();
        }
        return false;
    });
};

用法如下:

$( 'current_field_selector' ).focusNextInputField();

您是否尝试过使用

$("input").trigger( 'keypress', e );

作为解决方案?
我发现有时候露骨是最好的。 如果那甚至不起作用

$("input").trigger( 'keypress', [{preventDefault:function(){},keyCode:9}] );

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM