如何判断textbox输入控件当前是否处于选中状态?
判断文本框是否处于选中(焦点)状态的原生JavaScript函数
方法1:直接对比当前活动元素
这是最直接的实现方式,利用浏览器提供的document.activeElement获取当前页面获得焦点的元素,对比目标文本框即可:
function isTextBoxFocused(textBoxId) { const targetTextBox = document.getElementById(textBoxId); return document.activeElement === targetTextBox; }
使用示例:
假设你的文本框HTML结构是 <input type="text" id="userInput">,调用函数时只需传入ID:
// 检查文本框是否处于选中状态 const focusedStatus = isTextBoxFocused('userInput'); console.log(focusedStatus); // 输出true(选中)或false(未选中)
方法2:通过事件监听维护实时状态
如果需要持续跟踪文本框的焦点变化,可以绑定focus和blur事件,维护一个状态变量:
// 初始化状态为未选中 let isTargetFocused = false; const targetTextBox = document.getElementById('userInput'); // 文本框获得焦点时更新状态 targetTextBox.addEventListener('focus', () => { isTargetFocused = true; }); // 文本框失去焦点时更新状态 targetTextBox.addEventListener('blur', () => { isTargetFocused = false; }); // 获取当前状态的函数 function getTextBoxFocusStatus() { return isTargetFocused; }
关于你之前的onclick方法无效的原因onclick仅在点击动作触发时执行,无法实时反映文本框的焦点状态——比如点击文本框后再点击页面其他区域,文本框会失去焦点,但onclick不会再次触发,自然无法更新状态。上面的两种方法则能准确获取当前时刻的焦点状态。
内容的提问来源于stack exchange,提问作者Ethan Kempton
相关产品推荐
相关产品推荐

