地図を表示させて、更にセレクトメニューで地域を選択してマーカーを表示させています。http://withmama.lolipop.jp/kaihatsu/spreadsheet_to_map/hatena4.php

chromeだと、意図した通りの処理ができるのですが、IEだと動きません。
http://withmama.lolipop.jp/kaihatsu/spreadsheet_to_map/hatena4.php のソースを見てただく早いのですが、コードの下の方で、
<input type="hidden" name="ne_lat" id="ne_lat" value="">
<input type="hidden" name="ne_lng" id="ne_lng" value="">
<input type="hidden" name="sw_lat" id="sw_lat" value="">
<input type="hidden" name="sw_lng" id="sw_lng" value="">
としているのですが、この値がIEだと渡せてないようです。
当方の環境はwindowsXPのため、IE8を使用してます。

IEでも動作するコードをご教示いただけませんか?

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/06/11 18:53:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.2

回答回数4973ベストアンサー獲得回数2154

ポイント100pt

以下のくだりなんですが、option タグに value 属性がありません。

<select onchange="setHidden(this.value);">
<option>地域を選んでください</option>
<option>北海道</option>
<option>東北</option>

<option>関東</option>
<option>東京都&神奈川県</option>
<option>その他地域は製作中</option>
</select>

以下のように、value 属性を指定すれば、動作すると思います。

<select onchange="setHidden(this.value);">
<option>地域を選んでください</option>
<option value="北海道">北海道</option>
<option value="東北">東北</option>

<option value="関東">関東</option>
<option value="東京都&神奈川県">東京都&神奈川県</option>
<option>その他地域は製作中</option>
</select>
id:ozaki

ありがとうございました。一発で表示されました。

2012/06/11 18:51:36

その他の回答1件)

id:Cherenkov No.1

回答回数1504ベストアンサー獲得回数493

ポイント100pt
<select onchange="setHidden(this);">

に変更。

function setHidden(item) {
  item = $(item).val(); //★
  var ne_lat = $('#ne_lat');
  var ne_lng = $('#ne_lng');
  var sw_lat = $('#sw_lat');
  var sw_lng = $('#sw_lng');

  if(item == '北海道') {
    ne_lat.val('45.3328');
    ne_lng.val('145.7775');
    sw_lat.val('41.2107');
    sw_lng.val('139.2004');
  } else if(item == '東北') {
    ne_lat.val('41.3322');
    ne_lng.val('142.0421');
    sw_lat.val('36.4729');
    sw_lng.val('139.3113');
  } else if(item == '関東') {
    ne_lat.val('37.0918');
    ne_lng.val('140.5221');
    sw_lat.val('34.5358');
    sw_lng.val('138.5457');
  } else if(item == '東京都&神奈川県') {
    ne_lat.val('35.7977');
    ne_lng.val('139.9469');
    sw_lat.val('35.0744');
    sw_lng.val('138.5457');
  } else {
    ne_lat.val('');
    ne_lng.val('');
    sw_lat.val('');
    sw_lng.val('');
  }
}

(回答2に対して)こうすればvalue属性を追加しなくてもよさそう。

参考:IE8以下はvalue属性がないoption要素の値をJavaScriptのvalueプロパティで取得できない | 富永日記帳

他6件のコメントを見る
id:Cherenkov

地図増やす度にne_lat.val('45.3328');とか関数内を編集するのは面倒くさいから

<option value='"{"name":"北海道","ne_lat":45.3328,"ne_lng":145.7775,"sw_lat":41.2107,"sw_lng":139.2004}"'>北海道</option>

とかJSON埋め込んでまとめて管理するとか。

2012/06/11 11:09:09
id:ozaki

こういう方法もあるんですね。感謝です!

2012/06/11 18:52:30
id:a-kuma3 No.2

回答回数4973ベストアンサー獲得回数2154ここでベストアンサー

ポイント100pt

以下のくだりなんですが、option タグに value 属性がありません。

<select onchange="setHidden(this.value);">
<option>地域を選んでください</option>
<option>北海道</option>
<option>東北</option>

<option>関東</option>
<option>東京都&神奈川県</option>
<option>その他地域は製作中</option>
</select>

以下のように、value 属性を指定すれば、動作すると思います。

<select onchange="setHidden(this.value);">
<option>地域を選んでください</option>
<option value="北海道">北海道</option>
<option value="東北">東北</option>

<option value="関東">関東</option>
<option value="東京都&神奈川県">東京都&神奈川県</option>
<option>その他地域は製作中</option>
</select>
id:ozaki

ありがとうございました。一発で表示されました。

2012/06/11 18:51:36

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません