1

Google Places API を使用して、交通サービスのピックアップ場所とドロップオフ場所を一覧表示しています。入力すると結果が自動提案される 2 つのフィールドがあります。

ドロップダウン #transport-type が最初のオプションの値 = 1 に設定されている場合、入力フィールド #pick-up-location の結果に「types」空港が追加されます。

JS:

function transport_types() {
 if ($('#transport-type').val() == 1) { 
     var input = document.getElementById('pick-up-location');
     var options = { types: ['airport'] };
     autocomplete = new google.maps.places.Autocomplete(input, options);
 }
 if ($('#transport-type').val() == 2) {
     var input = document.getElementById('drop-off-location');
     var options = { types: ['airport'] };
     autocomplete = new google.maps.places.Autocomplete(input, options);
 }
 google.maps.event.addDomListener(window, 'load', initialize);
}

ドロップダウン HTML:

<select id="transport-type" name="TransNeeded" required="true" tabindex="101" onChange="transport_types();">
  <option value='0' selected='selected'>Where do you want to go?</option>
  <option value='1' onfocus="enableGoogle('', true);"  id="pick-up-type">Pick-Up Location is an Airport</option>
  <option value='2' onfocus="enableGoogle('', true);" id="drop-off-type">Drop-Off Location is an Airport</option>
  <option value='3' onfocus="enableGoogle('', true);" id="point-point-type">Point to Point or Charter</option>
</select>    

入力 HTML:

<input type="text" id="pick-up-location" name="PUFullAddress" tabindex="104" value="Pick-Up Location" required="true" 
  onblur="if(this.value.length==0) { $('#pick-up-location').attr('value', ''); }"
  onkeypress="delay(50);" 
  onfocus="enableGoogle('PU', false);" 
/>

<input id="drop-off-location" name="DOFullAddress" type="text" tabindex="105" value="Drop-Off Location" required="true" 
 onblur="if(this.value.length==0) { $('#drop-off-location').attr('value', ' '); }"
 onkeypress="delay(50);" 
 onfocus="enableGoogle('DO', false);" 
/>

私は最も熟練した jQuery プログラマーではないため、構文の問題でさえある可能性があります。皆さんが提供できる洞察に感謝します。

御時間ありがとうございます!

4

1 に答える 1

0

閉じ括弧がなく、余分な ; があります。以下を試してください

 if ($('#transport-type').attr('value', '1')) {
于 2012-10-02T13:13:16.910 に答える