1

当我尝试在 javascript ( document.activeElement.tagName) 中获取活动元素时,它会不断返回BODY. 输入元素是用 jquery 创建的。

情况如下:在页面加载时,我通过 jquery 创建了一个输入框。(标准类,动态id)

单击按钮时,我想测试是否选择了该输入框

谢谢您的帮助

4

2 回答 2

4

document.activeElement返回当前聚焦的元素。当没有焦点元素时,活动元素是页面的body.

单击button时,文本框不再具有焦点,因此始终返回正文元素。

在以下位置查看更多信息:https ://developer.mozilla.org/en-US/docs/DOM/document.activeElement

于 2013-01-14T03:39:49.623 回答
0

您必须通过监视最后单击的项目来跟踪最后选择的项目。

以下脚本应该完成您正在寻找的内容。

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')); 
  }
}); 

HTML

<input id='mybutton' type='button' value='Click Me' />
于 2013-01-14T03:45:16.457 回答