当我试图在javascript (document.activeElement.tagName
)中获得活动元素时,它一直返回BODY
。输入元素是用jquery创建的。
情况如下:在页面加载时,我通过jquery创建了一个输入框。(标准类,动态id)
点击按钮上的,我想测试输入框是否被选中
Thanks for the help
document.activeElement
返回当前聚焦的元素。当没有焦点元素时,活动元素是页面的body
。
当您单击button
时,文本框不再具有焦点,因此始终返回body元素。
查看更多信息:https://developer.mozilla.org/en-US/docs/DOM/document.activeElement
您必须通过监视最后单击的项来跟踪最后选择的项。
下面的脚本应该完成您正在寻找的。
jsFiddle
JS
$('body').append(
//Dynamic Inputs being added
$('<input />', { 'id':'test', 'type':'text'})
).append(
//Dynamic Inputs being added
$('<input />', { 'id':'test2', 'type':'text'})
).on('click', 'input[type="text"]', function(e){
//Keep track of the last selected input
$('.lastSelected').removeClass('lastSelected');
$(this).addClass('lastSelected');
});
//Get the last selected input from the page on a button click
$('#mybutton').click(function(e){
var items = $('.lastSelected')
if(items.length > 0){
alert($('.lastSelected').attr('id'));
}
});