1

javascriptに関しては、私はちょっとおかしいです。AからBへの方向をルーティングするためのGoogleマップの簡単なスクリプトがあります。モード(運転、徒歩など)を現在のドロップダウンセレクターからラジオボタンに変更したい場合を除いて、すべてうまく機能します。

ネットとstackoverflowで検索しましたが、現在、これに対する有効な解決策は見つかりませんでした。

私のhtml:

<select id="mode">
     <option selected="selected" value="DRIVING">Car</option>
     <option value="WALKING">Walk</option>
     <option value="TRANSIT">Public transport</option>
     <option value="BICYCLING">Bike</option>
</select>

およびスクリプト:

function calcRoute() {
var selectedMode = document.getElementById('mode').value;
var start = document.getElementById("routeStart").value;
var end = document.getElementById("routeEnd").value;
var request = {
    origin: start,
    destination: end,
    travelMode: google.maps.TravelMode[selectedMode]
};

上記のコードから選択(ドロップダウン)をラジオボタンに変更することは可能ですか、それとも他のものを投稿する必要がありますか?

ps私もこの解決策を試しましたが、ルートの計算を送信すると、空白のサブページ/ mode?にリダイレクトされます。

ありがとう :)

4

1 に答える 1

1

複数のチェックボックスを選択できるため、チェックボックスではなくラジオボタンについて話しているといいのですが、期待どおりには機能しません。ラジオボタンは、同じ名前と異なるIDを持つグループで提供され、そのうちの1つではcheckedプロパティがtrueに設定されるため、見つかるまでループします。

チェックされているラジオボタンを見つけるための新しい関数を作成し、var selectedMode = document.getElementById('mode')。value;を置き換えます。以下のコードで:

function getCheckedRadio(radio_group) {
    for (var i = 0; i < radio_group.length; i++) {
        var button = radio_group[i];
        if (button.checked) {
            return button;
        }
    }
    return undefined;
}

var selectedMode = getCheckedRadio(document.forms.frmId.elements.groupName).value;
于 2013-01-21T08:07:31.270 に答える