2010-12-11 8 views
0

私はいくつかのテキスト入力といくつかのボタンがあるページを持っています。私はキャレットがでている方、フィールド、私はそのボタンの値はキャレット位置に挿入したいボタンをクリックすると、ここに私の関数呼び出しはこれまでです:。jQuery:どのテキストボックスにキャレットがあるかを調べる/

$('li input[type="button"]').click(function(){$('#aTextInput').insertAtCaret($(this).val())}); 

を私が実際に入力して$('#aTextInput')を交換したいですその中にキャレットがあります。何か案は?

Here'sinsertAtCaret機能、誰もが尋ねる前に、あなたは興味がない限り、あなたはおそらくがそれを見てする必要はありません。。)

編集:

は、だから私はこれを試してみました:

jQuery.extend(jQuery.expr[':'], { 
    focus: "a == document.activeElement" 
}); 

$('li input[type="button"]').click(function(){$('input:focus').insertAtCaret($(this).val())}); 

しかし、ボタンをクリックすると、何も起こりません。 this solutionを実装していますか?

+0

http://stackoverflow.com/questions/2683742/is-there-:私はちょうどあなたがここに入力、新しいjsFiddleでこれを行うにしようとしていたが実現

EDIT

javascript-or-jquery/2683838#2683838 – charliegriefer

+0

私はすでにそれを見ていましたが、動作させることができません。私は自分の質問を編集して、どのように実装しようとしたのかを表示します - 多分私は間違っているだけかもしれません。 – user460847

答えて

3

複数のテキストエリアがある場合は、このようなことをしたいと思うでしょう。ボタンは、テキストエリアをクリックすると

// any time a textarea gets focus, set the ID 
$('textarea').focus(function(){ 
    focusID = $(this).attr('id'); 
}); 

// when the button is clicked 
$('input[type="button"]').click(function(){  
    // insert the value into the textarea 
    insertAtCaret(focusID,$(this).val()) 
}); 

Check out my example on jsFiddle here

私が持っていた問題だったが、ボタンがクリックされた瞬間に焦点を当てていたテキストエリアを見つけることが難しかったので、フォーカスを失いました。 http://jsfiddle.net/tVNDL/1/

// any time a input gets focus, set the ID 
$('input').focus(function(){ 
    focusID = $(this).attr('id'); 
}); 

// when the button is clicked 
$('input[type="button"]').click(function(){  
    // insert the value into the textarea 
    insertAtCaret(focusID,$(this).val()) 
}); 
+0

これは完璧です!本当にありがとう! – user460847

+0

あなたは、私が助けることができてうれしい! :-) – jyoseph

関連する問題