jquery,将焦点设置在第一个启用的输入上或在页面上选择或textarea

Jos*_*osh 34 jquery focus jquery-selectors

这很简单.我想将焦点设置为页面上的第一个启用而非隐藏控件.

对于文本框,我有

$("input[type='text']:visible:enabled:first").focus();
Run Code Online (Sandbox Code Playgroud)

但我希望得到"全部"表单输入控件:textbox,checkbox,textarea,dropdown,radio在我的选择器中抓取第一个启用而不是隐藏控件.有什么建议?

Jor*_*ore 74

$(':input:enabled:visible:first').focus();
Run Code Online (Sandbox Code Playgroud)

  • 有趣的故事,我等待时间过去所以我可以选择它作为答案,办公室的权力消失了. (9认同)
  • 然后随意选择它作为正确的答案.:) (2认同)

Dmi*_*soy 10

作为乔丹答案的延伸

$(':input:enabled:visible:not([readonly]):first').focus();
Run Code Online (Sandbox Code Playgroud)

这个也排除了只读输入


zmo*_*eca 5

这有点全面:

$('form :input:text:visible:not(input[class*=filter]):first').focus();
Run Code Online (Sandbox Code Playgroud)

Lamen:将光标以可见的形式聚焦在第一个文本输入中,但如果它使用名为"filter"的类,则忽略它!