javascript()でアクティブな要素を取得しようとすると、document.activeElement.tagName
が返され続けBODY
ます。input要素はjqueryで作成されました。
状況は次のとおりです。ページの読み込み時に、jqueryを介して入力ボックスを作成しました。(標準クラス、動的ID)
ボタンをクリックすると、その入力ボックスが選択されているかどうかをテストしたい
助けてくれてありがとう
document.activeElement
現在フォーカスされている要素を返します。フォーカスされた要素がない場合、アクティブな要素はページのbody
です。
をクリックするbutton
と、テキストボックスにフォーカスがなくなるため、body要素が常に返されます。
詳細については、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' />