- 在web项目中,多个输入框时,按tab 键是能够进行下一个切换聚焦的,回车也能够加上监听事件,方便用户处理多个输入的事件。
- js 处理input 监听事件
function changeEnter(inputs) { const init = () => { for (let i = 0; i < inputs.length; i++) { inputs[i].addEventListener('keydown', focus(i), false); // 每个input添加键盘监听 } } const focus = (i) => { return (event) => { const next = i + 1 < inputs.length ? i + 1 : 0; // 判断是否为最后一个输入框,是则返回第一个,否则继续下一个 const eve = event ? event : window.event; if (eve.keyCode === 13) { if (inputs[next].tagName === 'INPUT' || inputs[next].tagName === 'SELECT') { inputs[next].focus(); } } } } const destory = () => { for (let i = 0; i < inputs.length; i++) { inputs[i].removeEventListener('keydown', focus(i), false); // 解除监听 } } init(); return { destory() { destory(); // 用于销毁监听 } }} module.exports = changeEnter
- react 中使用
其中componentDidMount() { const inputSelector = `.page-container input[class$="ant-input"], .page-container input[class$="ant-input-number-input"],.textarea_box input[class$="ant-input-lg"]` const changes = document.querySelectorAll(inputSelector); // let activeChanges = [] changes.forEach((item) => { if (!item.disabled) { // 过滤disabled 属性的输入框 activeChanges.push(item) } }) // console.log('changes', changes); this.inputEnter = changeEnter(activeChanges); } componentWillUnmount() { this.inputEnter && this.inputEnter.destory(); }
input[class$="ant-input"]
取法是为了获取ant-input
结尾的input输入框,
react 输入框 回车事件切换
原创
©著作权归作者所有:来自51CTO博客作者wx5b513ff79311e的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
回车事件、键盘事件
回车事件、回车登录、键盘按键登录
java java基础 工具类 java进阶 学习资料 -
【React】React绑定事件
在React中,事件是组件与用户或其他组件通信的重要方式,例如:点击按钮、输入文本、拖动元素等。事件绑定是指将事件
react.js javascript 前端 事件绑定 绑定事件 -
回车事件
回车事件
回车事件 -
java 回车提交 java回车事件
今天遇到个需求,需要 EditText控件监听软键盘的回车按键,将用户写下的多行文本提交到服务器。一开始以为是个简单的要求,不过由于对EditText内部机制的不了解,导致比预期花多了不少时间去完成,特此记录一下。如果是对EditText内部机制不熟悉的人的话,一开始应该会写出类似我们下面的代码:
java 回车提交 java edittext 输入监听 android Text xml