2012-05-16 29 views
7

Ben Seçilen ülke için şehir listesi aldıktan iyi çalışır aşağıdaki jQuery kodu var. kişi yer seçer kezGoogle Rehber JavaScript Otomatik tamamlama: Ben yer adından ülkeyi kaldırabilirim?

var city; var place; 

$('#city').on('focus',function(){ 
    input = this, options = { 
     types: ['(cities)'], 
     componentRestrictions: { 
      country: $('#country option:selected').val() 
      } 
    }; 
    city = new google.maps.places.Autocomplete(input, options); 
    google.maps.event.addListener(city, 'place_changed', function() { 
     place = city.getPlace(); 
     $(input).val(place.address_components[0].long_name); 
    }) 
}) 

Temelde, bu ülke olmadan "şehir" değeri ile giriş kutusundaki değeri değiştirir.

Bu bir sonuçları kısıtlayan bir componentRestrictions değer tanımladıktan eğer öyleyse herkes bunun SADECE şehir adını görüntülemek mümkün olup olmadığını biliyor mu, kullanıcı zaten bir ülke seçti zaman açılır menüden City, Country olması biraz aptal görünüyor ülke?

Ben seçim gerçekten biraz ... çöp olduğu yapıldıktan sonra ayarlama benim şimdiki yöntemi ... bulmak

+0

Sorunuzu birkaç kez okudum ve ne anlattığınızı tamamen anladığımı hissetmiyorum. Belki de bazı işaretlemeleri eklediyseniz, bu soruya biraz bağlam getirecek ve herkesin anlamasına yardımcı olacaktır. Ya da belki sayfanıza bir bağlantı veya jsFiddle'ta bir örnek? –

+0

Genel olarak, açılır menüde neler olduğunu düzenleyebilir misiniz? Demek istediğim, ülke adı biliniyorsa, açılan açılan girişten 'değiştir'. –

+0

Açılır pencere Google tarafından oluşturuldu. Ayrıca bir kod kemanı işe yaramaz ve sayfamın bir bağlantısı hiçbir sorun olmayacaktı. Bu sorun, bir kez sorun çözüldüğünde, sayfada görünmeyecek, başka herhangi bir soruya cevap verildikten sonra sorusu işe yaramaz hale gelecektir. insanlar böyle bir şey yapmak istiyorlar. –

cevap

3

Kısa cevap: Autocomplete yanıt içeriği Google (tarafından kontrol edilir Bunu yorumlarınızdan birinde bahsediyorsunuz) ve Autocompleteapi-doc, dışındaki yer tutucu metninidev-guide yer tutucu metnini değiştirerek görüntülenen yanıt metnini özelleştirmenin bir yolunu sağlamaz. Kullandığınız çözüm, sahip olduğunuz en iyi seçenek hakkında (ve biraz reaktif, ama gerçekten "çöp") bilmiyorum. O yaklaşımla memnun daha az ise Bunun dışında

, her zaman sadece kendi giriş alanını oluşturmak ve ileri geri kendinizi istek-yanıt denetimini tümüyle ele geçirebilir. Rehber Kitaplığı'nı dev-guide doğrudan kullanabilir ve gösterilen her şeyin kontrolünü elinize alabilirsiniz.

1

ben 100 milleseconds bekleyin ve ardından istediğim içerikle metin kutusu değiştirin. benim durumumda hariç

Ben boş kutu istiyorum ama tek bir boşluk ekleyin. Bir Autocomplete nesne oluştururken belirttiğiniz bölgeyi yansıtır böylece Sonra

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?libraries=places&sensor=false&key=your_key&language=fr&region=FR"></script> 

,, componentRestriction özelliğinde ülkeyi belirtmek: Google API çağrılırken zaman

10

, "Bölgeyi" özelliğini belirtmek

 

    new google.maps.places.Autocomplete(
     $("#my-input-field").get(0), 
     { 
      componentRestrictions: {country: "fr"}, 
      types: ["(regions)"] 
     } 
    ); 

+0

Bu, Google Haritalar API'sine yeni bir özellik mi? Bu soruyu neredeyse iki yıl önce yayınladım! –

+2

Ne yazık ki, bu ABD için çalışmıyor. Ama diğerleri iyi görünüyor. –

+0

"Bölge = US" ile çalışır benim için! – rebello95

2

Ayrıca css ile kendinize yardımcı olabilir - otomatik tamamlama maddesinde geçen aralığı (= devlet) gizleme.

.pac-item > span:last-child { 
    display: none; 
} 
+1

Bu, ülke ve devleti gizlediğinden, birçok devletin aynı ada sahip bir şehri olduğu birçok durumda bu bir çözüm değildir. Örneğin, ABD'de dört eyalette Bağımsızlık denen bir şehir var. – Reid

İlgili konular