2011-11-11 13 views
0

ユーザーが特定の入力ボックスに焦点を合わせたときにjquery UIダイアログを表示したいとします。それは、問題は、入力ボックスは、ダイアログボックスを閉じた後、入力ボックスにフォーカスを取得しない、つまり、ユーザーが入力ボックスにクリックしてダイアログボックスが開くことです。ユーザーがダイアログを閉じる - >入力ボックスにフォーカスがありません。jquery UIを表示しているダイアログでフォーカスが移動しません

実際に入力ボックスをフォーカスする唯一の方法は、ダイアログがすでに表示されている間にもう一度クリックすることです。これはかなり迷惑です。ダイアログボックスを閉じた後、inputboxにフォーカスが欲しいです。

$(function() { 
    $("#identifiersDialog").dialog({autoOpen: false}); 
});   
$('#identifiers').focus(function(event) { 
    $("#identifiersDialog").dialog('open');   
}); 

答えて

2

あなたは、ここにhttp://jsfiddle.net/RCBQs/1/

blur機能はその後、フォーカスが離れ入力から移動した後、ダイアログをリセット

$(function(){ 
    InitiliseInput();  
}); 
function InitiliseInput(){ 
    $('#identifiers').bind('focus', function() { 
     $('#identifiersDialog').dialog({ close: function() { 
      $('#identifiers').unbind('focus').focus().blur(function(){ InitiliseInput()});    
     }}); 
    }); 
} 

の作業例を使用することができます。

+0

が動作します。しかし、$( '#identifiersDialog')を追加する必要があります。それ以外の場合、ダイアログのテキストを含むdivがページに表示されます。 –

+0

ダイアログのスタイルシートはありますか?あなたがスタイルシートを持っていないか、または#identifiersDialogスタイルがデフォルトで 'display:none;'に設定されていることを確認しない限り、jQueryUIダイアログが閉じられると、常に隠されます –

-1

これが役立ちます。そのリフォーカスが再びダイアログが開きますので、

$(function() { 
    $("#identifiersDialog").dialog({autoOpen: false, close: function() { $('#identifiers').focus() }}); 
});   
$('#identifiers').focus(function(event) { 
    $("#identifiersDialog").dialog('open');   
}); 
+1

これにより、閉じるときにダイアログボックスが再び開いてしまうことがあります。 –

+0

はい、私はこれを逃した。 Tx。 – dereli

関連する問題