自動生成した複数URLを別窓で開く方法

このQ&Aのポイント
  • javascriptを使用して、複数のテキストボックスに入力された文字列を含むURLに対して別ウィンドウでジャンプする方法を教えてください。
  • 生成されたURLは、「http://xxxxxxxxxx/」と入力された文字列と「/index.html」で構成されます。
  • 各テキストボックスごとに生成されたURLを別ウィンドウで開くためには、テキストボックスごとに個別のジャンプ関数を設定し、それぞれのテキストボックスの値をURLに結合すれば実現できます。
回答を見る
  • ベストアンサー

自動生成した複数URLを別窓で開く方法

以下のようなjavascriptを設定して、 ============================================== <script type="text/javascript"> <!-- function jump () { var linkUrl = document.urlLink.urlVal.value; if ( linkUrl != "" ) { location.href = "http://xxxxxxxxxx/" + linkUrl + "/index.html"; } } //--> </script> ============================================== 以下のようなフォームを作った場合 ============================================== <form name="urlLink"> <input type="text" name="urlVal"> <input type="button" value="移動" onClick="jump();"> </form> ============================================== フォームに入力した文字列を含むURLに対してジャンプが出来る、 ということを先ほどでここで教えてもらいました。 さらにこれに対して、 複数のテキストボックスを設置して、各テキストボックスごとに生成されたURLに別ウィンドウでジャンプする。 という仕組みを取り入れたい場合、どのようにすればよいでしょうか? 例えば、複数のテキストボックスを設置して、それぞれ、 00000 00001 00002 という文字列を入力して移動ボタンを押すと、 http://xxxxxxxxxx/00000/index.html http://xxxxxxxxxx/00001/index.html http://xxxxxxxxxx/00002/index.html の各URLが別ウィンドウで開く、といった感じです。 宜しくお願いします。

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

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 前回提示したものですが、実際に使用する際はエラーチェック等 行った方がよいかもしれません。 (現状、何も入力がなければ移動しないようにはなっています) 複数対応はこのようにしてはいかがでしょうか。 === JavaScript function jump () { var fObj = document.urlLink; for ( i = 0; i < fObj.length; i ++ ) { if ( fObj.elements[i].type == "text" && fObj.elements[i].value != "" ) { var dir = fObj.elements[i].value; url = "http://localhost/" + dir + "/index.html"; window.open ( url, "", "" ); } } } === Form <form name="urlLink"> <input type="text" name="urlVal1"> <input type="text" name="urlVal2"> <input type="text" name="urlVal3"> <input type="button" value="移動" onClick="jump();"> </form> 1例ですのでうまくカスタマイズしてみてください。

harahachi
質問者

お礼

申し訳ありません。うまくいきました。 私のミスで"}"がひとつ閉じ忘れてました。 大変失礼しました。 今回もとても助かりました、ありがとう御座います。

harahachi
質問者

補足

度々ありがとうございます。 ただ、やってみたのですがうまく動いてくれません。 私なりに色々いじってはみたのですが・・・ 前回頂いた回答と比較して気になって点ですが、form内の値は var fObj = document.urlLink; の記述で拾えてきてるのでしょうか? 有識者の方に対して失礼な質問かもしれませんが、ちょっと気になったもので。 すみません、お手数ですがご教授いただければ幸いです。 宜しくお願いします。

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 Windows2000 IE6.02の環境でテストを行いました。 うまくいかなかったと言うのは、エラーが出てると言うことでしょうか? その辺の情報を頂かないとなんとも言えません。 > 前回頂いた回答と比較して気になって点ですが、form内の値は > var fObj = document.urlLink; > の記述で拾えてきてるのでしょうか? > 有識者の方に対して失礼な質問かもしれませんが、ちょっと気になったもので。 疑問に思うことは良いことです。 alert ( fObj ); とかを入れてあげると、変数の中身がアラートで上がってくるので デバックがしやすくなります。 取得できないことが原因かはわからないので 他の取得方法を試して見て下さい。 var fObj = document.urlLink; を削除し、 fObjと記述されている部分を、全てdocument.urlLinkに置き換えてみて下さい。 例:if ( document.urlLink.elements[i].type == "text" && document.urlLink.elements[i].value != "" ) { それで実行してみて、動かない場合は どのようにして動いてないのか。 例えば、ボタンを押しても何も反応しない。 JavaScriptエラーが発生している。 エラーが発生している場合はその内容。 この辺の情報を頂ければ的確な答えが見つかると思います。

harahachi
質問者

お礼

申し訳ありません。 No.1で回答させていただいたとおり、私の記述ミスでした。 わざわざテストまでして頂いて、ご丁寧な回答を頂き恐縮です。 重ね重ね、ありがとう御座いました。

関連するQ&A

  • 複数のテキストボックスでインデックスを取得する方法

    htmlでテキストボックスを複数作り、そのうちの一つの テキストボックスをクリックすると、Javascriptで そのテキストボックスのインデックスを取得したい思います。 ソースは簡単ですが、以下の通りです。 サンプルとして5つテキストボックスを作成していますが、 実際は不特定(データの読み込み件数)です。 onclick="hoge(???);" の???の部分に、テキストボックスのインデックスを書きたいのですが。。。 リストボックスだと、selectedIndexで取得できるようなのですが、 テキストボックスはどのような関数を使えばいいですか? <html> <head>   <script language="javascript">     function hoge(index){     alert(index);   }   </script> </head> <body>   <input type="text" name="hoge" onclick="hoge(???);"><br>   <input type="text" name="hoge" onclick="hoge(???);"><br>   <input type="text" name="hoge" onclick="hoge(???);"><br>   <input type="text" name="hoge" onclick="hoge(???);"><br>   <input type="text" name="hoge" onclick="hoge(???);"><br> </body> </html>

  • フォームの動作についてお願いします!

    <FORM NAME="form1"> <INPUT NAME="text1" TYPE="text"> <INPUT TYPE="button" value="表示" onclick="daialog()"> </FORM> <script language="JavaScript"> <!-- function daialog(){  alert(form1.text1.value) ; } --> </script> ----------------------------------- と上のようにテキストボックスの中身をアラートで返すスクリプトが あるのですが、検索ページ(google等)のようにボタンを押さずとも、 エンターキーを押せばdaialog()が呼びだされるようにするには どうすればいいでしょうか。。。 <FORM>に関係がありそうなのでJavaScriptのカテゴリにじゃないかも しれませんが、どなたかよろしくお願いします!!

  • submitについて

    <script type="text/javascript"> <!-- function go() { document.getElementsByTagName("input")[3].value+="text"; } //--> </script> <form name="NAME1" action="#" method="get" onSubmit="go()"> <input type="submit" name="submit1" value="送信1" > <input type="submit" name="submit2" value="送信2"> <input type="button" name="submit3" value="送信3" onClick="go()"> <input type="text" name="text1" size="10"> </form> なのですが、送信2のsubmitを4回クリックすると以下のように表示されるのですが、どういう感じで実行されているのかわかりませんので教えていただけないでしょうか? 一応一回目はtext1=textとなるのですがテキストボックスには空になります。 2回目はtext1=textとなりテキストボックスにはtextが入ります。 3回目はtext1=texttextとなりテキストボックスには空になります。 4回目はtext1=textとなりテキストボックスは空になります。 以上よろしくお願いします。

  • テキストボックスの背景色について

    <html> <body> <form name="form1"> <input type="text" value="よろしく" name="text1"> <script language="javascript"> document.form1.text1.style.background-color = "green"; </script> </form> </body> </html> これはテキストボックスの背景色をグリーンにするプログラムなんですがうまくいきません。どこが間違っているのか指摘してください。

  • disabledの点で。

    このソースを開いて、更新ボタンをクリックすると、 2の方のテキストボックスが半透明になりますが、それは半透明にしないようにすることは可能なのでしょうか。 お願いします。 <html> <head> <title></title> <script language="JavaScript"> <!-- function setTF(){ if(document.form1.text1.value=="") document.form1.text2.disabled = true; else document.form1.text2.disabled = false; } //--> </script> </head> <body> <form name="form1"> 1<INPUT type="text" name="text1" onChange="setTF()"> 2<INPUT type="text" name="text2" disabled> <INPUT type="submit" value="登録" onClick="return setTF()" name="submit"> </form> </body> </html>

  • 計算結果のテキスト表示

    JavaScript計算式で結果を表示したいのですが できません。 テキストBOXには結果を入れれるのですが、 テキストBOXでなく文字として結果を出したいのですが でません。 以下ソースです。 19行目が表示希望箇所です。 <SCRIPT language="javascript"> <!-- function calc() { with(document.f) { syoukei.value = goods1.value * goods2.value * (goods3.value * 0.01) ; syoukei.value = Math.round(syoukei.value) } } // --> </SCRIPT> <FORM name="f"> 縦<INPUT type="text" name="goods1" size="3" onChange="calc();">m * 横<INPUT type="text" name="goods2" size="3" onChange="calc();">m * 厚み<INPUT type="text" name="goods3" size="3" onChange="calc();">cm<BR>       60L <INPUT type="text" name="syoukei" size="5">袋<BR> <SCRIPT language="javascript"> <!-- document.write(syoukei); } // --> </SCRIPT> </FORM>

  • テキストフォームのチェックについて

    テキストファームの内容チェックについて教えてください。 下記コードで取得したURLをテキストフォームに表示させ「onclick」でiframeに画面を表示させています。 これを、テキストファームが書き換わった段階で、実行することは できないでしょうか? (テキストフォーム内のURLが書き換わったら、その内容をチェック して、iframeにそのURLの画面を表示する) <html> <form name="f1"> URL:<input type="text" name="url" size="60" value="" /> <input type="button" value="このURLへ移動" onclick="target_name=***.location.href=this.form.url.value"> </form> <script type="text/javascript"> function set_latlng() { document.f1.url.value="http://***.***.****" /script> 以上、宜しくお願い致します。

  • フォームに表示される文字をセンタリングさせたい。

    Javascriptの初心者です。宜しくお願いします。 テキストエリアが2つあったとします。 1のテキストエリアにある値を入力してボタンを押すと、 2のテキストエリアに1で入力した値をそのまま表示させ、 尚且つ表示された値をフォーム内でセンタリングさせたいのですが どうすればよいのかわかりません・・・。 ご存知の方がいらっしゃいましたら教えて下さい。 どうぞ宜しくお願い致します。 <html> <head> <script language="JavaScript"> <!-- function my1() { a=document.form1.text1.value; document.form1.text2.value=a; } //--> </script> </head> <body> <form name="form1"> <input type="texterea" name="text1"> <input type="texterea" name="text2"> <input type="button" value="CLICK!" onClick="my1()"> </form> </body> </html>

  • disabledの点で。2

    また同じソースでの質問なのですが、以下のようなソースで、1のテキストボックスに過去に入力したもの(プルダウンみたいに下がって出てくる履歴のようなもの)を選択すると、2の方の入力ができなくなります。履歴の数字を入れても2の方に記入できるようにするにはどのようにしたら良いのでしょうか。また、これらの処理を行うとき、onChange以外のものを使ってできるのでしょうか?大変困っております、よろしくお願いします。 <html> <head> <title></title> <script language="JavaScript"> <!-- function setTF(){ if(document.form1.text1.value=="") document.form1.text2.disabled = true; else document.form1.text2.disabled = false; } //--> </script> </head> <body> <form name="form1"> 1<INPUT type="text" name="text1" onChange="setTF()"> 2<INPUT type="text" name="text2" disabled> <INPUT type="submit" value="登録" onClick="return setTF()" name="submit"> </form> </body> </html>

  • 複数のvalue値を返すには

    Aを選択した時10、Bを選択した時100、Cなら1000と <input type="text" name="TEXT" value="">に表示されるように以下のようなjavascriptを記述しましたが、 Aの時10と20を、Bの時100と200、Cの時1000と2000が もうひとつの<input type="text" name="TEXT2" value="">に表示できるようにするにはどうしたらよいのでしょうか。 記述方法を教えていただければ一番いいのですが、サンプルがあるページでもいいので、教えてください。 <script type="text/javascript"> <!-- function kai(){ document.FORM.TEXT.value = document.FORM.num.value; } //--> </script> </head> <body> <form name="FORM"> <input type="text" name="TEXT" value=""> <select name="num" onChange="kai()"> <option value="10">A</option> <option value="100">B</option> <option value="1000">C</option> </select> </form>

専門家に質問してみよう