HOW TO auto fill State and Country based on City using Javascript

The quick & dirty Javascript code below is based on the idea by Jason Hunt that makes use of Yahoo! Maps Web Services - Geocoding API

It works only in IE 5 or higher (untested in IE 7).

The Geocoding Web Service is actually meant to find the specific latitude and longitude for an address but we shall use the state and country that it also returns. If there are multiple cities with the same name, the first set of values returned by the web service are considered.

<HTML>
<HEAD>
<TITLE> Auto fill State and Country based on City </TITLE>
<SCRIPT LANGUAGE="JavaScript">
function getStateCountry()
{
var sUrl = "http://api.local.yahoo.com/MapsService/V1/geocode?appid=YahooDemo";
sUrl += "&city=" + crmForm.address1_city.value;

var oXmlHTTP = new ActiveXObject("Msxml2.XMLHTTP");

oXmlHTTP.Open("GET", sUrl, false);
oXmlHTTP.Send();

var oXmlDoc = oXmlHTTP.responseXML;
crmForm.address1_stateorprovince.value = oXmlDoc;

if (oXmlDoc.selectSingleNode("ResultSet/Result").getAttribute("precision") == "city")
{
crmForm.address1_stateorprovince.value = oXmlDoc.selectSingleNode("ResultSet/Result/State").text
crmForm.address1_country.value = oXmlDoc.selectSingleNode("ResultSet/Result/Country").text
}
}

</SCRIPT>
</HEAD>
<BODY>
<FORM METHOD=POST name="crmForm">
City: <INPUT TYPE="text" NAME="address1_city" onblur="getStateCountry()"><BR>
State: <INPUT TYPE="text" NAME="address1_stateorprovince"><BR>
Country: <INPUT TYPE="text" NAME="address1_country"><BR>
</FORM>
</BODY>
</HTML>


[ Code formatted with Thomas Johansen's utility. ]

Comments

Popular posts from this blog

Maven Crash Course - Learn Power Query, Power Pivot & DAX in 15 Minutes

"Data Prep & Exploratory Data Analysis" course by Maven Analytics

Oracle Cloud Infrastructure 2024 Generative AI Professional Course & Certification Exam (1Z0-1127-24)