• ベストアンサー

テキストボックスへの文字の表示について(文字は可変である)

リストボックスと関連付けさせて、テキストボックスに文字を表示させたいです。 表示のさせ方としては、例えば、リストボックスに5つ(5行)の文字列があります。 実現させたい事は、常にそのページが開いた時はリストボックスの1行目をテキストボックスに表示させたいです。簡単な具体例をあげると、 リストボックスに 1行目に「あ」、 2行目に「い」、 3行目に「う」、 4行目に「え」、 5行目に「お」 とあれば、 テキストボックスに、「あ」と表示。 2行目を選択したら「い」と表示。など・・・。 しかし、リストボックスの文字列の順番は場合により並びが同じではないので、スクリプト言語(VBScript?)を用いないといけないとは思いますが・・・ この例をいうと、ページが開いた時、 1行目に「お」、 2行目に「え」、 3行目に「う」、 4行目に「い」、 5行目に「あ」 とあれば、 テキストボックスに、「お」と表示してほしい。 この説明でご理解いただければ幸いです。 よろしくお願い致します。

  • burbe
  • お礼率35% (78/221)
  • HTML
  • 回答数3
  • ありがとう数1

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>文字列を次のページに引継ぎたい 普通、こう言うのはCGIを使うのだけど、javascriptのみでやってみました。 最初のページ ------------------------------ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS"> <title>リストボックスの内容をテキストボックスに表示する</title> <script type="text/javascript"> function init() { document.FORM.SELECT_VALUE.value=document.FORM.LIST.options[0].value; } function selectValue(f) { f.SELECT_VALUE.value=f.LIST.value; } function convert(f){//決定した値を、変換して、隠し欄に入れる f.ANS.value=encodeURI(f.SELECT_VALUE.value);//encodeURIを使うのは日本語を渡すため return true; } </script> </head> <body onload="init()"> <form name="FORM" action="nextPage.html" method="GET" onsubmit="return convert(this)"> <select name="LIST" onchange="selectValue(this.form)"> <option value="あ">あ</option> <option value="い">い</option> <option value="う">う</option> <option value="え">え</option> <option value="お">お</option> </select><br> <input name="SELECT_VALUE" type="text" value="" size="10"><br> <input type="submit" value="決定"> <input name="ANS" type="hidden" value=""> </form> </body> </html> ------------------------------ 次のページ ------------------------------ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS"> <title>前のページから値を引き継ぐ</title> <script type="text/javascript"> <!-- function init() { var paraName="ANS";//前のフォームエレメントの名前 var loc=location.href+"&"; //切り出し易くするために最後に&を付ける var qPos=loc.indexOf("?"); //?の位置を調べる if(qPos == -1){ return; //?が無い時なにもしない } loc=loc.substr(qPos, loc.length - qPos); var xPos=loc.indexOf(paraName+"="); if(xPos == -1){ return; //無い時なにもしない } xPos=xPos + (paraName+"=").length; var andPos=loc.indexOf("&",xPos); var v=loc.substr(xPos, andPos-xPos); document.FORM2.SELECT_VALUE.value=decodeURI(decodeURI(v)); } //--> </script> </head> <body onload="init()"> <form name="FORM2"> 前のページで選ばれたリストの値: <input name="SELECT_VALUE" type="text" value="" size="10"> </form> </body> </html> ------------------------------ 日本語を引き継ぐのでなければもっと簡単(encode,decodeがいらない)

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS"> <title>リストボックスの内容をテキストボックスに表示する</title> <script type="text/javascript"> function init() { document.FORM.SELECT_VALUE.value=document.FORM.LIST.options[0].value; } function selectValue(f) { f.SELECT_VALUE.value=f.LIST.value; } </script> </head> <body onload="init()"> <form name="FORM"> <select name="LIST" onchange="selectValue(this.form)"> <option value="あ">あ</option> <option value="い">い</option> <option value="う">う</option> <option value="え">え</option> <option value="お">お</option> </select><br> <input name="SELECT_VALUE" type="text" value="" size="10"> </form> </body> </html>

burbe
質問者

補足

ありがとうございました。 大変参考になりました。 もうひとつお願いがあるのですが、テキストボックスにある文字列を次のページへ渡す方法を教えていただけないでしょうか。 例えば、リストボックスで「う」を選択すると、テキストボックスには「う」の文字列が表示され、「う」の文字列を次のページに引継ぎたいのです。 よろしくお願い致します。

  • siteuma
  • ベストアンサー率28% (77/271)
回答No.1

JavascriptでもVBScriptでも同じようなことは可能です。 onLoad時のイベントで、リスト1行目の内容をテキストボックスのvalueに入れます。 下記はJavaScriptでの例です。 ---------------------------------- <html> <head> <script type="text/javascript"> <!-- function select_value(){ document.frm.txtbox.value = document.frm.lstbox.options(0).text; } //--> </script> </head> <body onload="select_value();"> <form name="frm"> <select name="lstbox" size="5" tabindex="0"> <option>あ</option> <option>い</option> <option>う</option> <option>え</option> <option>お</option> </select> <input type="text" name="txtbox" size="20"> </form> </body> </html> ---------------------------------- これでやりたいことが実現できていると良いのですが。

burbe
質問者

補足

ありがとうございました。 大変参考になりました。 もうひとつお願いがあるのですが、テキストボックスにある文字列を次のページへ渡す方法を教えていただけないでしょうか。 例えば、リストボックスで「う」を選択すると、テキストボックスには「う」の文字列が表示され、「う」の文字列を次のページに引継ぎたいのです。 よろしくお願い致します。

関連するQ&A

  • テキストボックスをページをまたいで表示できないか?

    WORD2019です。表題の通りです。 テキストボックスの上の行に、文字列、行数を増やしていくと、テキストボックスが順次下がっていきますが、ページの最下部に到達した時点で、テキストボックスが次ページに、すべて移動してしまい、空白部分ができてしまいます。このテキストボックスをページをまたいで表示されるように設定できないでしょうか??? また、数行の文字列を「文字の囲み線」を適用すると、1行ずつ囲ってしまうのですが、これを数行まとめて、囲ってしまう方法はないのでしょうか??? 要するに、数行に渡る文字列を四角の枠で囲って、しかもページをまたいで表示する方法はないのだろうか???という質問なのです。

  • 表をテキストボックスに入れたい

    Word2007で表を作りました。 最下段の行が2ページ目に行くためテキストボックスに 表を入れ1ページにおさめたいと思います。 出来上がった表をテキストボックスに入れる方法を教えて下さい。 文字列をテキストボックスに入れるときは、文字列を選択して 挿入 → テキストグループ → テキストボックス → 横書きテキ ストボックスの描画で自動的にテキストボックスに入りますが 表は、文字列と同じようにできないのでしょうか

  • テキストボックスに複数行の文字列を入力し、送信ボタンを押すと次の画面でその一行目だけを表示させたい

    ウェブページに表示されたテキストボックスに複数行の文字列を入力し、送信ボタンを押すと次の画面でその一行目だけを表示させたい です。phpでこれを実現したいのですが、どのように書けばよいでしょうか。 意味不明でしたら加筆しますのでよろしくお願いします。

    • ベストアンサー
    • PHP
  • 文字をテキストボックスの中央に

    テキストボックスの中央に文字を表示する方法ってありますか? センタリングとはちょっと違います。 縦書きのテキストボックスに1行入っているのですが、どうも左右の余白が等しくないのです。 テキストボックスの大きさは、変えたくないので「文字列にあわせて描画オブジェクトの大きさを調整する」のチェックははずしています。 word2003 winXP 利用

  • テキストボックスを下から上へ表示させる

    こんにちは、visualbasic2005のテキストボックスのことで質問させていただきます。 ボタンを押すとテキストボックスに文字列を追加表示させたいのですが、表示の仕方でつまづいています。 普通は、 textbox1.Text += "1" textbox1.Text += "2" textbox1.Text += "3" などとすると  ____________ |1                 | |2                 | |3                 | |                  | |                  |   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ と表示されますが、  ____________ |3                 | |2                 | |1                 | |                  | |                  |   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ このように順番が逆に、つまり新しく追加した文字列が一番上に表示されるようにしたいのです。 また、  ____________ |5                 | |4                 | |3                 | |2                 | |1                 |   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ この状態で「6」を追加すると(テキストボックスの縦幅を超えると)  ____________ |6               ■| |5               ■| |4               ■| |3               ■| |2               □|   ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ とずれ込み、右側にスクロールバーが出るようにしたいのです。 どうかよろしくお願いします。

  • テキストボックスをページをまたがって表示したい。

    WORD2019です。 うまく表現できないのですが、テキストボックス内の文章を追加したりして文字数が多くなったり、テキストボックス外の上の行に文章などを追加していくと、テキストボックスが、そのページ内に納まりきれなくなり、テキストボックスが、すべて次のページ移動してしまい、前ページに空欄ができてしまいます。 この状態をなくすために、このテキストボックスをページをまたいで表示されるように設定できないでしょうか???

  • テキストボックスで3文字ごとに「@」を表示させるには?

    VisualBasicで作成したテキストボックスに文字が入力される時に、3文字入力される度に、「@」を表示させる方法を教えてください。 例)ABC@DEF@123@ のような感じです。

  • テキストボックス

    下記のようにテキストボックス1.2に入れた文字列を 連結した状態でアラートで表示させたいのですが、 スクリプトを教えていただけませんか?? たとえば、テキスト1に[山田]、2に[太郎]と入れた場合はアラートで[山田太郎]と表示されます。 テキスト1 □□□ テキスト2 □□□ ボタン 「表示」 宜しくお願い致します。

  • 1つのテーブルに任意の文字を表示させたい

    1行1列のテーブル(テキストボックスみたいなもの)を作っておきます。 テーブルの横もしくは下にリンクを張った?文字又は画像にマウスが乗ると用意してある任意の文字がテーブルに表示させる事は出来るのでしょうか?多分JAVAスクリプトで実現するものだと思うのですが・・・? イメージとしてはリンクさせる文字の上にカーソルが乗るとリンク先の簡単な説明が表示され、クリックで目的ページに飛ぶというようなものです。リンクによって表示される内容が違いますが、表示されるテーブルは同じものを使いたいのです。 質問の内容も判りずらく、失礼な質問ですがよろしくお願いします。

  • WORD テキストボックスをブックマークした際に表示されるマーク

    環境はwindows XP home + Word 2002です。 ワード文書内にテキストボックスを配置、そのテキストボックスをブックマークした際に表示されるマークと挙動についてお伺いします。 1つのファイル内に全く同じ内容のページを複数作成して、1ページ目のテキストボックスに入力した内容を2ページ目以下の同じテキストボックスに表示されるようにする方法について質問したところ、御丁寧な回答を頂き無事に解決しました。 その作業過程で発生したよく分からない挙動についてお教え下さい。 例を挙げます。 1ページ目にテキストボックスを作ります。改ページして2ページ目にもテキストボックスを作ります。 1ページ目のボックスに入力した内容が2ページ目のボックスにも表示するようにします。 アドバイスしていただいたのは、1ページのボックスをブックマークして、2ページのボックスに相互参照を設定するという方法です。 この方法で解決したのですが、途中でハマってしまいました。 ブックマークした箇所には[ ]カッコが表示されます。例の場合、[ ]内の入力が2ページ目のボックスにも表示されることになります。 ブックマークを作成する際、適当な文字列を入れて選択してからブックマークすると[ ]が表示されます。[ ]の中身を書き換えると当然ながら2ページ目ボックスにも反映されます。 しかし、ボックスを作成して、そのままブックマークを作成すると(つまりダミー文字列を入力せずボックスはブランクのままブックマーク作成する)、ボックス内に表示されるマークは[ ]ではなく、「工」という漢字の上下の横棒が短いようなマークが表示されました。 「工」の後に文字列を入力しても2ページのボックスには反映されません。 両方の場合とも、ブックマークの設定ウィンドウには表示されているので、「工」が表示される場合もブックマークは作成されていると思われます。ただ、2ページ目ボックスと連携していないようなのです。 ブックマークを作成したときに表示される[ ]と「工」の違いは何なのでしょうか? よろしくご回答お願いします。