You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

技术问询:选择select表单选项后如何自动将光标移至文本输入框?

实现选择下拉框后自动定位光标到输入框

没问题,这个需求很容易实现,只需要借助JavaScript监听下拉框的change事件,触发时让目标文本输入框获取焦点即可。下面给你两种常用的实现方式:

方式一:内联事件(快速实现)

直接在<select>标签上添加onchange事件,触发时调用输入框的focus()方法,不需要额外给元素加标识:

<select name="id" class="form-control" onchange="document.getElementsByName('name')[0].focus();">
  <option>1</option>
  <option>2</option>
  <option>3</option>
</select>
<input type="text" name="name" class="form-control">

方式二:分离式JS(更规范)

如果更注重代码的可维护性,推荐把JS逻辑和HTML结构分离,先给元素加上id方便精准定位:

<select name="id" class="form-control" id="targetSelect">
  <option>1</option>
  <option>2</option>
  <option>3</option>
</select>
<input type="text" name="name" class="form-control" id="nameInput">

<script>
// 获取对应的DOM元素
const selectBox = document.getElementById('targetSelect');
const inputField = document.getElementById('nameInput');

// 监听下拉框的选项变更事件
selectBox.addEventListener('change', function() {
  // 让输入框获取焦点,光标自动定位到这里
  inputField.focus();
});
</script>

原理说明

  • change事件会在用户选择下拉框的新选项并确认后触发(比如点击选项后松开鼠标)。
  • 调用输入框的focus()方法,浏览器会自动将光标定位到该输入框内,刚好满足你的需求。

如果你的项目中使用了jQuery,也可以用更简洁的写法:

$('#targetSelect').on('change', function() {
  $('#nameInput').focus();
});

内容的提问来源于stack exchange,提问作者Imam Ahmad Ashari

火山引擎 最新活动