您好,我想阻止用户使用回车键,除非他们在我表单的特定文本区域中。我可以停止使用输入按钮,但如何使用 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/