• ベストアンサー

テキストエリアに入力したURLにアクセス

タイトルのとおりなのですが、formタグ内のtextとbuttonを使った遷移をしたいのですがどうすればいいでしょうか。 例えば以下のサイトを考えます。 ​http://aaa.com​ そしてテキストフィールドにabcと入力すると​http://aaa.com/abc​に遷移 また、テキストフィールドにqweと入力すると​http://aaa.com/qwe​に遷移 こういった遷移は可能なのでしょうか? formのactionに指定してあげたいのですが、うまく想像ができません。 http://aaa.com/?word=abcのようなページではなく http://aaa.com/abc のように遷移したいのです。 JavaScriptを使うと思い調べているのですが、よいページが見つかりません。 どなたかご教授ください。。

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

No1様の回答と同じですが <html> <head> <script type="text/javascript"> function hoge(e) { location.href = 'http://aaa.com/' + e.elements['test'].value; } </script> </head> <body> <form action="" method="" name="form1"> <input type="text" name="test" /> <input type="button" value="Jump" onclick="hoge(this.form)" /> </form> </body> </html> 入力値のチェックなどはしていません。 適宜、追加する必要があると思います。

jonclock
質問者

お礼

さっそくの回答ありがとうございます。 ボタンによる遷移はまさに希望どおりの挙動でした! 加えてテキストエリアでEnterキーを押しても同じ挙動を示すにはどうすればいいでしょうか。 今ですと?name=***といった形で出力されます。 Enterキーを無効にするやり方は分かるのですが、無効にしてしまうと少し使い勝手が悪化するような気がします。。 どうぞ宜しくお願いいたします。

その他の回答 (3)

  • mizutaki
  • ベストアンサー率33% (111/333)
回答No.4

若干勘違いが混ざってました。locationよりもsubmitの方が優先度が高いみたい。 お作りになったhoge();の一番最後の処理にreturn false;を付ければOKですよ。

  • mizutaki
  • ベストアンサー率33% (111/333)
回答No.3

イメージとしては <form onSubmit='return hoge();'> <input type="text" name="test" /> <input type="submit" value='vew'/> </form> onClickではなくてonSubmitを利用する事により、Submit処理をするような時にアクションをさせる事が出来ます。 ちなみにonSubmitの中でreturn false;となった場合には、submit処理をしないので、 Enterを押したけど、フォームの中身が悪いので処理をしない、という場合には、falseを返して、onSubmitの中がreturn false;になるようにするといいですよ。

jonclock
質問者

お礼

mizutakiさん、返信ありがとうございます。 やってみたのですが、ただのPOSTメソッドになってしまい、?test=***となってしまします。なぜでしょうか。。 <html> <head> <script type="text/javascript"> function hoge(e) { //alert("hoge"); alert(document.getElementById("tt").value); //test location.href = "http://aaa.com/" + document.getElementById("tt").value; } </script> </head> <body> <form onSubmit="return hoge(this.form);"> <input type="text" id="tt" name="test"/> <input type="submit" value="vew"/> </form> </body> </html>

  • mizutaki
  • ベストアンサー率33% (111/333)
回答No.1

デフォルト値として var url = 'http://aaa.com/'; をデフォルトとしてスタンバイしておいて、 ボタンを押した所でonClickでイベントを実行し filename = document.getElementById('form_no_id').value; みたいなものでフォームの中身を取得 window.location.href = url + filename; みたいにしてジャンプ先を指定して、ページを移動させる。 そんな感じでしょうか?

jonclock
質問者

お礼

回答ありがとうございます! JavaScriptでやると色々やり方があって勉強になりますね。! 加えてテキストエリアでEnterキーを押しても同じ挙動を示すにはどうすればいいでしょうか。 今ですと?name=***といった形で出力されてしまいます。 どうでしょうか。Enterキー無効にする、わけではなく同じ挙動をしてほしいのです。。 どうぞ宜しくお願いいたします。

関連するQ&A