阅读 177

input select 实现自动获取焦点

在我们平时的项目中,经常会遇到,新增一行数据,这行数据的某个输入框或是下拉框能够自动获取焦点, 编辑同理;这个问题可能会难住一些小伙伴,下面就来看一下我的实现方式吧

以react 为例

1.首先需要获取dom实例。即输入框或是下拉框dom元素的真正实例定义一个firstInput,;
2.因为列表数据有多条,需要指定某一条,再定义一个focusId
3.新增一行数据的数据,需要将新增数据的唯一键值赋值给focusId, 同时获取焦点,获取焦点后,将focusId清空
  this.focusId = id   focusInput(this.firstInput)   this.focusId = null 复制代码

// 新增行或是更改行的时候获取焦点 export function focusInput(input) { setTimeout(() => { if (input && input.input && typeof input.input.focus === 'function') { input.input.focus() } else if (input && typeof input.focus === 'function') { input.focus() } }, 0)      } 复制代码

4.使用ref 属性 输入框或是下拉框的绑定获取dom实例
<Select     ref={(node) => record.id === this.focusId && (this.firstInput = node) }    { feeItemList.map(item=><Select.Option value={item} key={item}>{item }</Select.Option>)} </Select>                                             >


作者:小前端一枚_
链接:https://juejin.cn/post/7033950050745057316


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐