プロが教える店舗&オフィスのセキュリティ対策術

JabsScriptの勉強を始めたばかりの初心者です。
自分で使っているオリジナルのスタートページに
Mapion(地図サイト)のシンプルな検索窓をつけようと思っているのですが、
Mapionは現在、特殊な仕様になっていて、例えば、
「新宿区新宿1-1-1」の地図を見たいというときには、
URLでいうと「http://www.mapion.co.jp/s/q=新宿区新宿1-1-1/」
という形でなければダメで、
htmlのみで<form>タグを使ってGET送信する形にすると、
どうしても、「http://www.mapion.co.jp/s/?q=新宿区新宿1-1-1」となってしまい、
これでは、余計な「?」が入ってしまうのと、最後に「/」がない為、
地図を表示してくれないのです。
そこで、JavaScriptを使って以下のように書いてみたところ、
一応動くようにはなったのですが、
テキストボックスに地図を見たいところの住所を入力した後に、
一回、Tabキーを押下するなりしてフォーカスを送信ボタンに移してから
Enterキーを押さないと動作してくれません。(下記ソース1参照)
住所入力後にテキストボックスにフォーカスがある状態でエンターキーを押下しても
きちんと内容が送信され地図が表示されるようにしたいのですが、
どうしたらいいでしょうか?
自分なりにいろいろ調べて試行錯誤していますが、どうもうまくいきません。

■ソース1

<html>

<!-- Mapion -->
<form name="js">
<input type="text" name="txtb" value="" size=50>
<input type="button" value="Mapion" onclick="textbox()">
</form>

</html>

<script>

function textbox(){
var url = "http://www.mapion.co.jp/s/q=" +document.js.txtb.value + "/" ;
window.location.href = url
}

</script>

■ソース2

↓onkeydownを使ってテキストボックスでEnterキーが押されたら
動作するように書いてみたつもりですが、これだと動きません。

<html>

<!-- Mapion -->
<form name="js">
<input type="text" name="txtb" value="" size=50 onkeydown="go();">
<input type="button" value="Mapion">
</form>

</html>

<script>

function textbox(){
var url = "http://www.mapion.co.jp/s/q=" +document.js.txtb.value + "/" ;
top.window.location.href = url;
}

function go(){
if(window.event.keyCode==13)textbox();
}

</script>

A 回答 (1件)

<form name="js" value="Mapion" onsubmit="textbox(); return false">


<input type="text" name="txtb" value="" size=50>
<input type="button">
</form>

これでどうでしょう?確認してないけど大丈夫だと思います。
    • good
    • 0
この回答へのお礼

うまくいきました!
こういう書き方であればうまく動くんですね。
解決できず困り果てていたので、本当に助かりました。
心から感謝申し上げます。
この度はありがとうございました。

お礼日時:2014/10/09 15:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!