javascript - 如何找出表单中的哪个文本区域处于焦点状态?

标签 javascript html

您好,我想阻止用户使用回车键,除非他们在我表单的特定文本区域中。我可以停止使用输入按钮,但如何使用 js 找出表单的哪一部分处于焦点状态?任何帮助都会很棒,谢谢

最佳答案

您可以分配一个全局变量。使用 jquery:

$('#id-of-textarea').focus(function(){textareaIsSelected = true});
$('#id-of-textarea').blur(function(){textareaIsSelected = false});

虽然不鼓励使用全局变量,但这是最快的方法,您可以在脚本的任何位置检查全局变量。如果你不使用 jquery,你可以使用这个缩短的函数:

function addEvent(a,b,c){
    if(a.addEventListener){a.addEventListener(b,c,null)}else{a.attachEvent("on"+b,c)}
}

function toggleTextareaSelected()
{
    textareaIsSelected = !textareaIsSelected;
}

addEvent(document.getElementById('id-of-textarea'),'focus',toggleTextareaSelected);
addEvent(document.getElementById('id-of-textarea'),'blur',toggleTextareaSelected);

编辑(来自 this 答案):

So now it's [document.activeElement] supported in the latest release of all major browsers (IE,FF,Safari,Chrome,Opera). I'd only use the event hack as a fallback for older browsers: if(!document.activeElement) { /* add event-listeners to set document.activeElement for older browsers */ }

关于javascript - 如何找出表单中的哪个文本区域处于焦点状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3577019/

相关文章:

javascript - Fancybox 尺寸错误

javascript - 我的 $asyncValidator 不工作 - Angular Javascript

javascript - 从html标签获取自定义属性

jQuery 加载带有图像的 HTML 将错误呈现到控制台

javascript - spry菜单占据了整个页面的高度

html - CSS3 过渡在 Firefox 中不起作用

javascript - Highcharts 未定义

javascript - jQuery 字符串比较?

html - 视网膜显示屏上的 Chrome 文本阴影错误

html - CSS 滚动条辅助