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でも動作するコードをご教示いただけませんか?
以下のくだりなんですが、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>
<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プロパティで取得できない | 富永日記帳
地図増やす度に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埋め込んでまとめて管理するとか。
こういう方法もあるんですね。感謝です!
以下のくだりなんですが、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>
ありがとうございました。一発で表示されました。
ありがとうございました。一発で表示されました。
2012/06/11 18:51:36