当我尝试在 javascript ( document.activeElement.tagName
) 中获取活动元素时,它会不断返回BODY
. 输入元素是用 jquery 创建的。
情况如下:在页面加载时,我通过 jquery 创建了一个输入框。(标准类,动态id)
单击按钮时,我想测试是否选择了该输入框
谢谢您的帮助
document.activeElement
返回当前聚焦的元素。当没有焦点元素时,活动元素是页面的body
.
单击button
时,文本框不再具有焦点,因此始终返回正文元素。
在以下位置查看更多信息:https ://developer.mozilla.org/en-US/docs/DOM/document.activeElement
您必须通过监视最后单击的项目来跟踪最后选择的项目。
以下脚本应该完成您正在寻找的内容。
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'));
}
});
HTML
<input id='mybutton' type='button' value='Click Me' />