1

javascript()でアクティブな要素を取得しようとすると、document.activeElement.tagNameが返され続けBODYます。input要素はjqueryで作成されました。

状況は次のとおりです。ページの読み込み時に、jqueryを介して入力ボックスを作成しました。(標準クラス、動的ID)

ボタンをクリックすると、その入力ボックスが選択されているかどうかをテストしたい

助けてくれてありがとう

4

2 に答える 2

4

document.activeElement現在フォーカスされている要素を返します。フォーカスされた要素がない場合、アクティブな要素はページのbodyです。

をクリックするbuttonと、テキストボックスにフォーカスがなくなるため、body要素が常に返されます。

詳細については、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 に答える