3

今日、 jQuery Geocompleteからフィールド結果を取得してstreet_addressを表示しようとして頭を悩ませていましたが、プラグインがそれをdata-geo=""としてフォーム フィールドなどにレンダリングしていないようです!

私のHTMLでは、通りの名前を取得するためのフィールドと、番号を取得するためのフィールドがあり、 #BillingAddressに移動するには両方の結果が必要です。一部の JavaScript で機能する可能性があると思いますが、私はその専門家ではありません。

<div class="item">
<input id="autocomplete" placeholder="Look up your address" type="text"></input>
</div>
<div class="item" style="display: none;">
<input class="cat_textbox" id="houseNo" data-geo="street_number" type="text" placeholder="House Number" maxlength="50"/>
</div>
<div class="item" style="display: none;">
<input class="cat_textbox" id="street" data-geo="route" type="text" placeholder="street" maxlength="50"/>
</div>
<div class="item">
<input class="cat_textbox" id="BillingAddress" data-geo="street_address" type="text" placeholder="Billing Address" maxlength="50" name="BillingAddress"/>
</div>

これまでのところ、いくつかのjqueryを使用してフィールド値を#BillingAddress入力に転送しようとしましたが、他の入力がキー入力または押された場合、またはクリックされた場合にのみコピーされますが、可視性を向上させ、フォームの複雑さを軽減するためにそれらを隠しておきたいそのため、Geo の結果が選択されると、このフィールドに一緒に入力されます。

$('#houseNo').on('propertychange change click keyup input paste',function(){
   $('#BillingAddress').val(this.value+' '+$('#street').val());
});

$('#street').on('propertychange change click keyup input paste', function(){
   $('#BillingAddress').val($('#houseNo').val()+' '+this.value);
});

助けてくれてとても感謝しており、これは他の人にとっても良い質問だと思います.

ここにフィドルがあります

4

2 に答える 2

1

おそらく既にご存知のように、プラグインを変更することは良いことではありません。結果オブジェクトの要素を結合する簡単な方法があります。結果にバインドするだけです。

$('#geocomplete').geocomplete({
  details: '#geo_details',
  detailsAttribute: 'data-geo',
  types: ['geocode', 'establishment']
}).bind("geocode:result", function(e, r) {
  return $('[data-geo=street_address]').val(r['address_components'][0]['short_name'] + ' ' + r['address_components'][1]['short_name']);
});
于 2015-08-04T04:12:35.710 に答える