javascript - google autocomplete setComponentRestrictions -
is there restriction on setting setcomponentrestrictions
value ? because not working while setting dynamic values.
scenario 1 (works fine)
in scenario hard coded county value search specific cities in country.so works fine when use hard coded value.
var input = document.getelementbyid('searchcity'); var options = { types: ['(cities)'],componentrestrictions: {country: 'us' }}; var autocomplete = new google.maps.places.autocomplete(cityinput,options);`
scenario 2 (not working)
in this, have text field using find country using autcomplete , storing short_code value in shortnamecountry id.but not working when passing dynamic value.
var input = document.getelementbyid('searchcity'); var countryopt = $("#shortnamecountry").val().tolowercase(); var options = {types: ['(cities)'], componentrestrictions: {country: countryopt }}; var autocomplete = new google.maps.places.autocomplete(input,options);
(i have added scenarios. dont know stackoverflow keep on ask me add more details. writting lines solve alert.) please me solve issue.
currently code uses property componentrestrictions
, have value of input when create autocomplete.
to change property must call method setcomponentrestrictions
when value of input changes.
function initialize() { var iso = ['ad','ae','af','ag','ai','al','am','ao','aq','ar','as','at','au','aw','ax','az','ba','bb','bd','be','bf','bg','bh','bi','bj','bl','bm','bn','bo','bq','br','bs','bt','bv','bw','by','bz','ca','cc','cd','cf','cg','ch','ci','ck','cl','cm','cn','co','cr','cu','cv','cw','cx','cy','cz','de','dj','dk','dm','do','dz','ec','ee','eg','eh','er','es','et','fi','fj','fk','fm','fo','fr','ga','gb','gd','ge','gf','gg','gh','gi','gl','gm','gn','gp','gq','gr','gs','gt','gu','gw','gy','hk','hm','hn','hr','ht','hu','id','ie','il','im','in','io','iq','ir','is','it','je','jm','jo','jp','ke','kg','kh','ki','km','kn','kp','kr','kw','ky','kz','la','lb','lc','li','lk','lr','ls','lt','lu','lv','ly','ma','mc','md','me','mf','mg','mh','mk','ml','mm','mn','mo','mp','mq','mr','ms','mt','mu','mv','mw','mx','my','mz','na','nc','ne','nf','ng','ni','nl','no','np','nr','nu','nz','om','pa','pe','pf','pg','ph','pk','pl','pm','pn','pr','ps','pt','pw','py','qa','re','ro','rs','ru','rw','sa','sb','sc','sd','se','sg','sh','si','sj','sk','sl','sm','sn','so','sr','ss','st','sv','sx','sy','sz','tc','td','tf','tg','th','tj','tk','tl','tm','tn','to','tr','tt','tv','tw','tz','ua','ug','um','us','uy','uz','va','vc','ve','vg','vi','vn','vu','wf','ws','ye','yt','za','zm','zw']; goo = google.maps, input = document.getelementbyid('searchcity'), country = document.getelementbyid('shortnamecountry'), options = {types: ['(cities)']}, autocomplete = new google.maps.places.autocomplete(input,options); goo.event.adddomlistener(country,'input',function(){ var val=this.value.trim().touppercase(); if(iso.indexof(val)>-1){ this.style.background='white'; input.value=' '; autocomplete .setcomponentrestrictions({country:val}); } else{ this.style.background='red'; } }); goo.event.trigger(country,'input'); } google.maps.event.adddomlistener(window, 'load', initialize);
<input id="searchcity"/> <input id="shortnamecountry" size="2" maxlength="2" value="de"/> <script src="https://maps.googleapis.com/maps/api/js?v=3&libraries=places"></script>
Comments
Post a Comment