如何使用jQuery自动选项到下一个字段?

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

我试过这个:

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

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

我想我可以使用focus()手动移动光标,但是确定下一个应该是哪个字段是浏览器已经知道该怎么做的事情,所以触发标签似乎更清晰。

有任何想法吗?

请参阅此问题的已接受答案。 例如,如果您想在输入一定数量的字符时将焦点移动到下一个字段,则可以在keyup事件中使用该代码,并检查输入的字符数。

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

这是一个解决方案,通过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(); 

有一个JQuery插件可用:

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

你尝试过使用过吗?

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

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

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

希望这可以帮助。