- ベストアンサー
クリック→フォーカスのある場所に文字を挿入
同一ページのリンクをクリックした時に、あるテキストボックスのフォーカスのある場所に文字を挿入したい。 #テキストボックスのnameは取得せずに。 #「フォーカスがある場所へ」限定。 <A HREF="javascript:function voi(){};voi()" onClick="document.main.☆この辺わからない☆='文字'">入れる</A> ↑ここをクリックするとフォーカスのあるところに入る。 というようなことはできますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
少し異なりますが以下の方法はどうでしょう? <input type=text onclick=FocusIn(this) onBlur=ForcusIn(this)> function FocusIn(i){ for(n=0;n<document.formName.elements.length;n++){ if(i==document.formName.elements[n]){ FORCUS=n; } } FORCUS=n; } そしてクリックする場所を <A HREF=# onclick=ValueIn('value')>INPUT</a> function ValueIn(i){ n=FORCUS; document.formName.elements[n].value=i; } とすればいいのではないでしょうか?
その他の回答 (2)
- shorn
- ベストアンサー率41% (12/29)
SAMPLE/********************* <html> <head> <script language="JavaScript"> <!-- var FORCUS=-1; function PROGRAM_1(i){ for(n=0;n<document.forms[0].elements.length;n++){ if(i==document.forms[0].elements[n]){ FORCUS=n; } } } function PROGRAM_2(i){ n=FORCUS; if(n!=-1){ document.forms[0].elements[n].value=i; } } //--> </script> </head> <body> <form> <input type=text onclick="PROGRAM_1(this)"> <input type=text onclick="PROGRAM_1(this)"> <input type=text onclick="PROGRAM_1(this)"> <input type=text onclick="PROGRAM_1(this)"> <br> <a href=# onClick=PROGRAM_2('9880')>password</a> <br> <a href=# onClick=PROGRAM_2('3178')>ID</a> </form> </body> </html>
- a-kuma
- ベストアンサー率50% (1122/2211)
できません。 アンカーをクリックした瞬間に、直前までテキストボックスにあったフォーカスが アンカーに移りますから。 テキストボックスを name などで特定すれば、できる可能性があります。 フォーカスが移動してもカーソル位置を覚えてますから。 でも、NetscapeNavigator の JavaScript では、カーソル位置に文字を挿入する ということはできません。IE の JScript ならできるかも。
お礼
回答ありがとうございます。 >アンカーをクリックした瞬間に、直前までテキストボックスにあったフォーカスがアンカーに移りますから。 この説明を聞くとなるほどと思います。 それではやはり、nameなどで特定する方法での処理としてやりたいと思います。 #フォーカスも奥が深い・・ (^^;
お礼
回答ありがとうございました。また、完全サンプルまでご提供ありがとうございました。 自分のやりたい予定の内容のものセットして使ってみましたが、問題なく利用できました。Nameを気にしなくてもいいので、各種の入力の際にとても汎用的につかえるツールになりそうです。(会社のイントラ) 活用させていただきます。(^O^)