2012-05-16 16 views
7

मेरे पास निम्न jQuery कोड है जो चयनित देश के लिए शहर सूची प्राप्त करने के साथ अच्छी तरह से काम करता है।Google स्थल जावास्क्रिप्ट स्वतः पूर्ण: क्या मैं देश के नाम से देश को हटा सकता हूं?

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); 
    }) 
}) 

मूल रूप से, एक बार व्यक्ति जगह का चयन करता है, यह इनपुट बॉक्स में मूल्य देश के बिना "शहर" मान के साथ बदल देता है।

यह थोड़ा जब उपयोगकर्ता पहले से ही एक देश का चयन किया है होने लटकती मेनू में City, Country बेवकूफ लग रहा है, तो किसी को भी पता है अगर यह सिर्फ शहर का नाम प्रदर्शित करने के लिए संभव है यदि आप एक के लिए परिणामों को सीमित एक componentRestrictions मूल्य को परिभाषित किया है देश?

मैं इसे स्थापित करने के लिए एक बार चयन होने के लिए एक सा ... वास्तव में बकवास कर दिया गया है की मेरी वर्तमान पद्धति ... लगता है

+0

मैंने आपके प्रश्न के माध्यम से कई बार पढ़ा है और मुझे ऐसा नहीं लगता कि मैं पूरी तरह से समझ रहा हूं कि आप क्या वर्णन कर रहे हैं। मुझे लगता है कि अगर आप कुछ मार्कअप शामिल करते हैं, तो यह सवाल कुछ संदर्भ देगा और हर किसी को समझने में मदद करेगा। या शायद आपके पृष्ठ का एक लिंक या jsFiddle पर एक उदाहरण? –

+0

आम तौर पर बोलते हुए, क्या आप ड्रॉपडाउन में क्या संपादित कर सकते हैं? मेरा मतलब है, अगर देश का नाम ज्ञात है, तो ड्रॉपडाउन प्रदर्शित प्रविष्टि से इसे 'प्रतिस्थापित करें'। –

+0

ड्रॉपडाउन Google द्वारा उत्पन्न होता है। कोड का एक झुकाव भी काम नहीं करेगा और मेरे पृष्ठ का एक लिंक कोई मदद नहीं करेगा, जैसे-जैसे समस्या ठीक हो जाती है, यह पृष्ठ पर दिखाई नहीं देगी, किसी अन्य के उत्तर देने के बाद सवाल बेकार हो जाएगा लोग इस तरह कुछ करना चाहते हैं। –

उत्तर

3

संक्षिप्त उत्तर है: Autocomplete में प्रतिक्रिया सामग्री Google (द्वारा नियंत्रित किया जाता आप इसे अपनी टिप्पणियों में से एक में उल्लेख करते हैं) और Autocompleteapi-doc प्रदर्शित होने वाले प्रतिक्रिया पाठ को अनुकूलित करने का कोई तरीका प्रदान नहीं करता है, प्लेसहोल्डर टेक्स्टdev-guide को बदलकर। जिस समाधान का आप उपयोग कर रहे हैं वह आपके पास सबसे अच्छा विकल्प है (और थोड़ा प्रतिक्रियाशील है, लेकिन मुझे नहीं पता कि यह वास्तव में "बकवास" है या नहीं)।

इसके अलावा, यदि आप उस दृष्टिकोण से संतुष्ट से कम हैं, तो आप हमेशा अपना खुद का इनपुट क्षेत्र बना सकते हैं और अनुरोध-प्रतिक्रिया के पूर्ण नियंत्रण को स्वयं और आगे ले सकते हैं। आप प्लेस लाइब्रेरी dev-guide सीधे उपयोग कर सकते हैं और दिखाए गए सभी चीज़ों का पूरा नियंत्रण ले सकते हैं।

1

मैं 100 मिलीसेकंड का इंतजार करता हूं, और फिर इच्छित सामग्री के साथ टेक्स्ट बॉक्स को प्रतिस्थापित करता हूं।

मेरे मामले में छोड़कर मुझे एक खाली बॉक्स चाहिए, लेकिन एक ही स्थान डालें।

10

जब गूगल एपीआई लागू, "क्षेत्र" विशेषता निर्दिष्ट करें:

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

तब, जब आप एक Autocomplete वस्तु बनाने, देश componentRestriction विशेषता में, इतना है कि यह आपके द्वारा निर्दिष्ट क्षेत्र को दर्शाता है निर्दिष्ट करें:

 

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

+0

इस गूगल मैप्स एपीआई के लिए एक नई सुविधा है? मैंने लगभग दो साल पहले इस सवाल को पोस्ट किया था! –

+2

दुर्भाग्य से, यह अमेरिका के लिए काम नहीं कर रहा। लेकिन दूसरों को ठीक लगता है। –

+0

'क्षेत्र के साथ काम करता है = मेरे लिए US'! – rebello95

2

इसके अलावा आप सीएसएस द्वारा स्वयं की मदद कर सकते हैं - स्वत: पूर्ण आइटम में अंतिम अवधि (= राज्य) छुपाएं।

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

चूंकि यह देश और राज्य को छुपाता है, यह कई मामलों में एक समाधान नहीं है जहां कई राज्यों के पास एक ही नाम वाला शहर है। उदाहरण के लिए, अमेरिका में चार राज्यों में स्वतंत्रता नामक एक शहर है। – Reid

संबंधित मुद्दे