• ベストアンサー

テキストフォームのマウスの位置に記号を挿入したいです

以下のタグでは、テキストフォームの最後に記号を追加していますが 任意の位置へ挿入できる機能にしたいです。 IEだと簡単に実現する方法はあったと思いますが、 FireFoxでも任意の位置に記号を挿入することはできるでしょうか? <form action="" name="fm"> マウスを好きな数字の間に置いて●を1つ挿入してください。<br> <input type="text" name="test1" value="1234567890"> <input type="button" onclick="fm.test1.value=fm.test1.value+'●'" value="●を挿入"> </form>

質問者が選んだベストアンサー

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.2

あまり、深く考えていませんが、こんなのでどうでしょうか <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja-JP"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>TEST</title> <style type="text/css"></style> <script type="text/javascript"> <!-- function set_hoge(str){ var e=document.getElementById('test1'); if(document.all){ // IE e.focus(); var selection=document.selection.createRange(); selection.text = str + selection.text; }else{ // IE以外 e.value = e.value.substring(0,e.selectionStart) + str + e.value.substr(e.selectionEnd); } } // --> </script> <body> <form action="#" name="fm"> マウスを好きな数字の間に置いて●を1つ挿入してください。<br> <input type="text" id="test1" value="1234567890"> <input type="button" onclick="set_hoge('●');" value="●を挿入"> </form> </body> </html>

php4
質問者

お礼

完璧に動作しました。ありがとうございます。 応用で、別ウインドウで入力した値を挿入する事をチャレンジしたら、 IEでは実現できず先頭に挿入されましたが、 FireFoxでは教えていただいたソースのままでも動作しました。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

このカテゴリーから検索で「selectionStart」で調べれば 色々ヒットします。それでもわからなければ再度質問してください

php4
質問者

お礼

ポイントとなる、キーワードを教えていただき、 ありがとうございます。大変、助かりました。

関連するQ&A