DevExtreme dxSelectBox:如何用JavaScript实现聚焦时选中文本
DevExtreme dxSelectBox 聚焦自动选中文本(JavaScript实现)
要实现开启搜索功能的dxSelectBox在聚焦时自动选中文本,你可以沿用Angular版本的核心思路,通过DOM查询获取输入框元素,而非错误地使用component.option()方法。以下是正确的JavaScript实现:
完整配置示例
$("#yourSelectBoxId").dxSelectBox({ dataSource: ["选项1", "选项2", "选项3"], // 替换为你的实际数据源 searchEnabled: true, // 必须开启搜索功能才会显示输入框 onFocusIn: function(e) { // 获取组件根DOM元素下的搜索输入框 const inputElement = e.element.querySelector("input.dx-texteditor-input"); if (inputElement) { // 延迟执行确保输入框已完全渲染就绪 setTimeout(() => { inputElement.select(); }, 0); } } });
关键说明
- 你之前的代码错误在于使用
e.component.option("input.dx-texteditor-input"):option()方法仅用于读写组件的配置参数(如searchEnabled、value等),无法直接获取DOM元素。 e.element是dxSelectBox组件对应的根DOM节点,通过它可以正确查询到内部的搜索输入框。- 加入
setTimeout是为了避免DOM渲染时序问题,确保输入框已完全加载后再执行选中文本操作。
内容的提问来源于stack exchange,提问作者Miguel A Gonzalez
相关产品推荐
相关产品推荐

