查找任何表单元素
Find any form element
我试图找到一个类是否存在,如果不是,只是找到第一个表单元素。我怎么写:输入?这似乎行不通。
$('.focus:not(:hidden):first, :input:not(:hidden):first').focus();
逗
号分隔的选择器不像您似乎指示的那样分层。您的选择器将生成第一个可见.focus
和第一个可见输入元素。您需要将其分解为两个选择器:
var focusElement = $('.focus:visible:first');
if(focusElement.length == 0)
focusElement = $(':input:visible:first');
focusElement.focus();
或者我想你可以写
$('.focus:visible:first, body:not(:has(.focus:visible)) :input:visible:first').focus();
你的代码实际上对我有用。看看这个jsfiddle。尝试删除我的class='focus'
,然后它会回退到选择第一个输入字段。
我会选择易于理解的模型:
var finder = $('.focus:not(:hidden):first');
finder = finder.length ? finder: $(':input:not(:hidden):first');
finder.focus();
相同的结果,但考虑到从右到左的嘶嘶声,可能会更好:性能
var finder = $('.focus').not(':hidden').eq(0);
finder = finder.length ? finder: $(':input').not(':hidden').eq(0);
finder.focus();
相关文章:
- Javascript更新孙窗口中的表单元素
- 阻止表单元素提交
- 根据select选项元素将表单重定向到不同的URL
- 使用javascript取消隐藏和隐藏表单中的某些元素
- 使用带有.net autopostback的ryanfait.com自定义表单元素
- 使用javascript更改表单元素的ID值
- HTML5在提交并显示所需标签后显示隐藏的表单元素
- 表单中元素的更改值为't已发布
- Small Javascript从动态表单中删除多个元素的问题
- 为什么表单元素不应命名为submit
- 如何使用相同的javascript控制表单中的不同元素
- 从函数中选择要触发表单提交的正确元素
- 如何重置搜索表单中的特定表单元素
- Rails-带有单选按钮的表单,带有启用/禁用附加元素的javascript操作
- 使用 ng-repeat访问 ng 表单元素/值
- 获取电子邮件附件的表单元素
- js 语法传递名称元素表单验证
- 如何选择元素表单列表并将其放入文本框中
- 如何使用JQuery获取主体中第一个元素(表单)的id
- 尝试使用每个查找元素表单XML文件