如何通过JS或CSS为选中选项后显示的隐藏输入框设置焦点
解答
首先明确:纯CSS无法实现元素自动获焦的需求。CSS仅负责控制元素样式,没有操作DOM交互状态(比如焦点)的能力,你现有代码已经引入了jQuery,只需要添加1行极简单的JS代码就能实现效果,学习成本很低。
具体实现方法
你只需要在控制文本输入框显示的代码逻辑后,调用jQuery的focus()方法即可。
结合你贴出的现有代码,当选择Individual选项时会操作#personSubmittedByValue输入框,你可以直接把聚焦逻辑追加到这个判断分支里:
if ($("#frmSubmittedValue").val() == '') { return false; } if ($("#frmSubmittedValue").val() == 'Individual') { $("#personSubmittedByValue").val(''); // 这是你原本控制输入框显示的代码,保留在原有位置即可 $("#personSubmittedByValue").show(); // 新增下面这行,输入框显示后会自动获得焦点 $("#personSubmittedByValue").focus(); } if ($("#frmProjectSub").val() == 0) { return false; }
补充说明
- 如果你不是用
.show()控制显隐,而是通过切换CSS类(比如移除hidden类、添加show类)的方式显示输入框,只需要把.focus()的调用放在你切换类名的代码之后即可,逻辑完全一致 - 不要尝试用CSS
:focus伪类实现该效果,:focus只能给已经获得焦点的元素添加样式,无法主动触发元素聚焦 - 必须等输入框从隐藏状态切换为显示状态后再调用
focus(),否则聚焦不会生效
内容的提问来源于stack exchange,提问作者tillymonstar
相关产品推荐
相关产品推荐

