2012-01-09 22 views
2

文書にはinputがたくさんあります。
テキストを生成し、現在フォーカスのある入力に配置するダイアログを開きたいとします。要素がフォーカスを失うのを防ぐ

問題は、入力がフォーカスを失うダイアログを開くためにボタンなどをクリックしたときです。どの入力が生成されたテキストを取得しなければならないのか判断できません。

$("#button").click(function(){ 
    // something should goes here to prevent stealing inputs focus 
}); 

特別なボタンでフォーカスを盗むのを防ぐ方法はありますか?

+1

をあなたがボタンをクリックすると、ダイアログのコールバックやダイアログ – ggzone

+0

思えるの閉じるボタンの上にそれをロードするとき良いアイデア、私はそれをテストする必要があります – Omid

+0

動作しません!ボタンをクリックする前に入力ぼかしが発生します。 – Omid

答えて

1

フォームbuttonを使用して、<span>と言うだけでボタンのように動作させることはできませんでしたか?

UPDATE:あなたは

$('span').hover(function(){ 
    focused_element = $("*:focus").get(0); 
}); 
$('span').click(function(){ 
    focused_element.focus(); 
}); 

のようなものを使用することができ

my fiddle

+0

問題がまだ存在する!!!! – Omid

+0

本当にですか? hmmm @ggzoneとしてやる必要があるかもしれないが、コメントに示唆している。 – Alex

+0

フォーカスの喪失と関係がありませんか? – mrzmyr

0

フィールドに固有のIDがありますか?表示されている場合は、そのIDを使用して、ダイアログの保存/閉じるボタンがクリックされたときにフォーカスをフィールドに戻します。

作業が完了しても、フォーカスを盗まれてしまうことを心配しないでください。

+0

親愛なるジェイソンは、一意のIDはありませんでした – Omid

0

をチェックアウト私のソリューションは、すべてのフォーカスを処理し、focusEleでそれを保存するために、次のようになります。

$(function() { 

    var focusEle; 

    $('*').focus(function() { 
     focusEle = this; 
    }); 

    $('button').click(function (e) { 
     console.log(focusEle); 
     var c = confirm('Love the cat :3?'); 
     $(focusEle).focus(); 
    }); 
}); 

HTMLの場合:

<input type="text"> 
<button>Press me!</button> 

例が働いている:フォーカス保存http://jsfiddle.net/76uv7/

@ggzoneアイデア次第で

+0

'focusEle'になるボタンをクリックすると' * 'セレクタが意味するので、これは動作しません。 –

+0

@RoryMcCrossan私はそうでも推測しましたが、その動作を確認してください – mrzmyr

+0

私はFF9フォーカスで私のために、ボタンをクリックした後にテキスト入力に返されません。 –

関連する問題