如何将焦点定位到表单中第一个空的input或textarea元素?
如何将焦点定位到特定表单的第一个空输入框/文本域?
要把焦点限定到特定表单内的第一个空input或textarea,只需要在原有选择器前加上表单的定位条件即可,以下是几种常用实现方式:
1. 通过表单ID精准定位(推荐)
如果你的表单有唯一ID(比如id="myForm"),直接在选择器前加上ID限定:
$("#myForm textarea:empty, #myForm input:text[value='']").first().focus();
或者用find()方法让代码更清晰:
$("#myForm").find("textarea:empty, input:text[value='']").first().focus();
2. 适配用户输入后清空的场景
注意:input:text[value='']只能匹配初始值为空的输入框,如果用户输入内容后又手动清空,DOM的value属性不会同步更新,这时候用过滤函数判断当前实际输入值更可靠:
$("#myForm").find("textarea, input:text").filter(function() { // 去除首尾空白后判断是否为空 return $.trim($(this).val()) === ""; }).first().focus();
3. 其他表单定位方式
如果表单没有ID,也可以用class、name属性等定位:
- 通过class:
$(".signup-form").find(...) - 通过name属性:
$("form[name='loginForm']").find(...) - 页面中的第一个表单:
$("form:first").find(...)
内容的提问来源于stack exchange,提问作者Damol
相关产品推荐
相关产品推荐

