シンプルなjquery確認ダイアログがあり、他の要素ではなくダイアログ自体にフォーカスを設定したいと考えています。以下のコードは、フォーカスを設定するために行ったものです。
function showAlert() {
$("#dialog-confirm").dialog({
title: 'Main Information',
resizable: false,
height:140,
modal: true,
closeOnEscape:true,
buttons: {
"Yes": function() {
document.getElementById('form1:newProfile' ).value="true";
if(disableSaveFlag) return false; else disableEnableSaveBtn('true');
$( this ).dialog( "close" );
},
"No": function() {
document.getElementById('form1:newProfile' ).value="false";
if(disableSaveFlag) return false; else disableEnableSaveBtn('true');
$( this ).dialog( "close" );
}
}
});
$("#dialog-confirm").focus(); // this line sets focus on div element with given id
}
<div id="dialog-confirm" style="display:none">
<p><span class="ui-icon ui-icon-alert" style="float: left; margin: 0 7px 20px 0;"></span>
Do you want to create a new profile ?
</p>
</div>
問題は、ダイアログ自体の「ID」が見つからず、それにフォーカスしていないことです。その結果、フォーカスは Div 要素に設定され、私のタイトルはフォーカスされていません。
以下は、上記のコードで得られるものです。