Skip to content

Instantly share code, notes, and snippets.

@dound
Created May 8, 2010 04:12
Show Gist options
  • Save dound/394325 to your computer and use it in GitHub Desktop.
Save dound/394325 to your computer and use it in GitHub Desktop.
/* Created by David Underhill (http://www.dound.com) -- You are free to use/modify this code however you like. */
var countryOptions='<option value="AU">Australia</option><option value="CA">Canada</option><option value="IE">Ireland</option><option value="UK">United Kingdom</option><option value="US" selected>United States</option><option value="??">Other</option>';var statesByCountry={"??":[["??","Other"]],AU:[["ACT","Australian Capital Territory"],["NSW","New South Wales"],["NT","Northern Territory"],["QLD","Queensland"],["SA","South Australia"],["TAS","Tasmania"],["VIC","Victoria"],["WA","Western Australia"]],CA:[["AB","Alberta"],["BC","British Columbia"],["MB","Manitoba"],["NB","New Brunswick"],["NL","Newfoundland and Labrador"],["NS","Nova Scotia"],["NT","Northwest Territories"],["NU","Nunavut"],["ON","Ontario"],["PE","Prince Edward Island"],["QC","Quebec"],["SK","Saskatchewan"],["YT","Yukon Territory"]],IE:[["CAR","Carlow"],["CAV","Cavan"],["CLA","Clare"],["COR","Cork"],["DON","Donegal"],["DUB","Dublin"],["GAL","Galway"],["KER","Kerry"],["KID","Kildare"],["KIK","Kilkenny"],["LET","Leitrim"],["LEX","Laois"],["LIM","Limerick"],["LOG","Longford"],["LOU","Louth"],["MAY","Mayo"],["MEA","Meath"],["MOG","Monaghan"],["OFF","Offaly"],["ROS","Roscommon"],["SLI","Sligo"],["TIP","Tipperary"],["WAT","Waterford"],["WEM","Westmeath"],["WEX","Wexford"],["WIC","Wicklow"]],UK:[["ABD","Aberdeenshire"],["AGY","Anglesey"],["ALD","Alderney"],["ANS","Angus"],["ANT","Antrim"],["ARL","Argyllshire"],["ARM","Armagh"],["AVN","Avon"],["AYR","Ayrshire"],["BAN","Banffshire"],["BDF","Bedfordshire"],["BEW","Berwickshire"],["BKM","Buckinghamshire"],["BOR","Borders"],["BRE","Breconshire"],["BRK","Berkshire"],["BUT","Bute"],["CAE","Caernarvonshire"],["CAI","Caithness"],["CAM","Cambridgeshire"],["CEN","Central"],["CGN","Cardiganshire"],["CHS","Cheshire"],["CLK","Clackmannanshire"],["CLV","Cleveland"],["CMA","Cumbria"],["CMN","Carmarthenshire"],["CON","Cornwall"],["CUL","Cumberland"],["CWD","Clwyd"],["DBY","Derbyshire"],["DEN","Denbighshire"],["DEV","Devon"],["DFD","Dyfed"],["DFS","Dumfries-shire"],["DGY","Dumfries and Galloway"],["DNB","Dunbartonshire"],["DOR","Dorset"],["DOW","Down"],["DUR","Durham"],["ELN","East Lothian"],["ERY","East Riding of Yorkshire"],["ESS","Essex"],["FER","Fermanagh"],["FIF","Fife"],["FLN","Flintshire"],["GLA","Glamorgan"],["GLS","Gloucestershire"],["GMP","Grampian"],["GNT","Gwent"],["GSY","Guernsey"],["GTM","Greater Manchester"],["GWN","Gwynedd"],["HAM","Hampshire"],["HEF","Herefordshire"],["HLD","Highland"],["HRT","Hertfordshire"],["HUM","Humberside"],["HUN","Huntingdonshire"],["HWR","Hereford and Worcester"],["INV","Inverness-shire"],["IOW","Isle of Wight"],["JSY","Jersey"],["KCD","Kincardineshire"],["KEN","Kent"],["KKD","Kirkcudbrightshire"],["KRS","Kinross-shire"],["LAN","Lancashire"],["LDY","Londonderry"],["LEI","Leicestershire"],["LIN","Lincolnshire"],["LKS","Lanarkshire"],["LTN","Lothian"],["MER","Merionethshire"],["MGM","Mid Glamorgan"],["MGY","Montgomeryshire"],["MLN","Midlothian"],["MON","Monmouthshire"],["MOR","Morayshire"],["MSY","Merseyside"],["NAI","Nairn"],["NBL","Northumberland"],["NFK","Norfolk"],["NRY","North Riding of Yorkshire"],["NTH","Northamptonshire"],["NTT","Nottinghamshire"],["NYK","North Yorkshire"],["OKI","Orkney"],["OXF","Oxfordshire"],["PEE","Peebles-shire"],["PEM","Pembrokeshire"],["PER","Perth"],["POW","Powys"],["RAD","Radnorshire"],["RFW","Renfrewshire"],["ROC","Ross and Cromarty"],["ROX","Roxburghshire"],["RUT","Rutland"],["SAL","Shropshire"],["SEL","Selkirkshire"],["SFK","Suffolk"],["SGM","South Glamorgan"],["SHI","Shetland"],["SOM","Somerset"],["SRK","Sark"],["SRY","Surrey"],["SSX","Sussex"],["STD","Strathclyde"],["STI","Stirlingshire"],["STS","Staffordshire"],["SUT","Sutherland"],["SXE","East Sussex"],["SXW","West Sussex"],["SYK","South Yorkshire"],["TAY","Tayside"],["TWR","Tyne and Wear"],["TYR","Tyrone"],["WAR","Warwickshire"],["WES","Westmorland"],["WGM","West Glamorgan"],["WIG","Wigtownshire"],["WIL","Wiltshire"],["WIS","Western Isles"],["WLN","West Lothian"],["WMD","West Midlands"],["WOR","Worcestershire"],["WRY","West Riding of Yorkshire"],["WYK","West Yorkshire"],["YKS","Yorkshire"]],US:[["AK","Alaska"],["AL","Alabama"],["AR","Arkansas"],["AS","American Samoa"],["AZ","Arizona"],["CA","California"],["CO","Colorado"],["CT","Connecticut"],["DC","District Of Columbia"],["DE","Delaware"],["FL","Florida"],["FM","Federated States Of Micronesia"],["GA","Georgia"],["GU","Guam"],["HI","Hawaii"],["IA","Iowa"],["ID","Idaho"],["IL","Illinois"],["IN","Indiana"],["KS","Kansas"],["KY","Kentucky"],["LA","Louisiana"],["MA","Massachusetts"],["MD","Maryland"],["ME","Maine"],["MH","Marshall Islands"],["MI","Michigan"],["MN","Minnesota"],["MO","Missouri"],["MP","Northern Mariana Islands"],["MS","Mississippi"],["MT","Montana"],["NC","North Carolina"],["ND","North Dakota"],["NE","Nebraska"],["NH","New Hampshire"],["NJ","New Jersey"],["NM","New Mexico"],["NV","Nevada"],["NY","New York"],["OH","Ohio"],["OK","Oklahoma"],["OR","Oregon"],["PA","Pennsylvania"],["PR","Puerto Rico"],["PW","Palau"],["RI","Rhode Island"],["SC","South Carolina"],["SD","South Dakota"],["TN","Tennessee"],["TX","Texas"],["UT","Utah"],["VA","Virginia"],["VI","Virgin Islands"],["VT","Vermont"],["WA","Washington"],["WI","Wisconsin"],["WV","West Virginia"],["WY","Wyoming"]]};function populateState(e,b){var f=e.value;var a=statesByCountry[f];var c='<option value="">Select state</option>';for(var d in a){state=a[d];abbr=state[0];full=state[1];c+='<option value="'+abbr+'">'+full+"</option>"}b.innerHTML=c;b.selectedIndex=0}function createLocationPicker(c,a){var d=document.getElementById(c);var b=document.getElementById(a);d.innerHTML=countryOptions;d.onchange=function(){populateState(d,b)};d.onchange()};
/* Created by David Underhill (http://www.dound.com) -- You are free to use/modify this code however you like. */
/* JavaScript tool which dynamically populates a state dropdown box when a
* country is selected. To use, call:
* createLocationPicker(idOfCountryDropdown, idOfStateDropdown).
*/
var countryOptions = '<option value="AU">Australia</option><option value="CA">Canada</option><option value="IE">Ireland</option><option value="UK">United Kingdom</option><option value="US" selected>United States</option><option value="??">Other</option>';
var statesByCountry = {"??":[
["??","Other"]],
"AU":[
["ACT","Australian Capital Territory"],
["NSW","New South Wales"],
["NT","Northern Territory"],
["QLD","Queensland"],
["SA","South Australia"],
["TAS","Tasmania"],
["VIC","Victoria"],
["WA","Western Australia"]],
"CA":[
["AB","Alberta"],
["BC","British Columbia"],
["MB","Manitoba"],
["NB","New Brunswick"],
["NL","Newfoundland and Labrador"],
["NS","Nova Scotia"],
["NT","Northwest Territories"],
["NU","Nunavut"],
["ON","Ontario"],
["PE","Prince Edward Island"],
["QC","Quebec"],
["SK","Saskatchewan"],
["YT","Yukon Territory"]],
"IE":[
["CAR","Carlow"],
["CAV","Cavan"],
["CLA","Clare"],
["COR","Cork"],
["DON","Donegal"],
["DUB","Dublin"],
["GAL","Galway"],
["KER","Kerry"],
["KID","Kildare"],
["KIK","Kilkenny"],
["LET","Leitrim"],
["LEX","Laois"],
["LIM","Limerick"],
["LOG","Longford"],
["LOU","Louth"],
["MAY","Mayo"],
["MEA","Meath"],
["MOG","Monaghan"],
["OFF","Offaly"],
["ROS","Roscommon"],
["SLI","Sligo"],
["TIP","Tipperary"],
["WAT","Waterford"],
["WEM","Westmeath"],
["WEX","Wexford"],
["WIC","Wicklow"]],
"UK":[
["ABD","Aberdeenshire"],
["AGY","Anglesey"],
["ALD","Alderney"],
["ANS","Angus"],
["ANT","Antrim"],
["ARL","Argyllshire"],
["ARM","Armagh"],
["AVN","Avon"],
["AYR","Ayrshire"],
["BAN","Banffshire"],
["BDF","Bedfordshire"],
["BEW","Berwickshire"],
["BKM","Buckinghamshire"],
["BOR","Borders"],
["BRE","Breconshire"],
["BRK","Berkshire"],
["BUT","Bute"],
["CAE","Caernarvonshire"],
["CAI","Caithness"],
["CAM","Cambridgeshire"],
["CEN","Central"],
["CGN","Cardiganshire"],
["CHS","Cheshire"],
["CLK","Clackmannanshire"],
["CLV","Cleveland"],
["CMA","Cumbria"],
["CMN","Carmarthenshire"],
["CON","Cornwall"],
["CUL","Cumberland"],
["CWD","Clwyd"],
["DBY","Derbyshire"],
["DEN","Denbighshire"],
["DEV","Devon"],
["DFD","Dyfed"],
["DFS","Dumfries-shire"],
["DGY","Dumfries and Galloway"],
["DNB","Dunbartonshire"],
["DOR","Dorset"],
["DOW","Down"],
["DUR","Durham"],
["ELN","East Lothian"],
["ERY","East Riding of Yorkshire"],
["ESS","Essex"],
["FER","Fermanagh"],
["FIF","Fife"],
["FLN","Flintshire"],
["GLA","Glamorgan"],
["GLS","Gloucestershire"],
["GMP","Grampian"],
["GNT","Gwent"],
["GSY","Guernsey"],
["GTM","Greater Manchester"],
["GWN","Gwynedd"],
["HAM","Hampshire"],
["HEF","Herefordshire"],
["HLD","Highland"],
["HRT","Hertfordshire"],
["HUM","Humberside"],
["HUN","Huntingdonshire"],
["HWR","Hereford and Worcester"],
["INV","Inverness-shire"],
["IOW","Isle of Wight"],
["JSY","Jersey"],
["KCD","Kincardineshire"],
["KEN","Kent"],
["KKD","Kirkcudbrightshire"],
["KRS","Kinross-shire"],
["LAN","Lancashire"],
["LDY","Londonderry"],
["LEI","Leicestershire"],
["LIN","Lincolnshire"],
["LKS","Lanarkshire"],
["LTN","Lothian"],
["MER","Merionethshire"],
["MGM","Mid Glamorgan"],
["MGY","Montgomeryshire"],
["MLN","Midlothian"],
["MON","Monmouthshire"],
["MOR","Morayshire"],
["MSY","Merseyside"],
["NAI","Nairn"],
["NBL","Northumberland"],
["NFK","Norfolk"],
["NRY","North Riding of Yorkshire"],
["NTH","Northamptonshire"],
["NTT","Nottinghamshire"],
["NYK","North Yorkshire"],
["OKI","Orkney"],
["OXF","Oxfordshire"],
["PEE","Peebles-shire"],
["PEM","Pembrokeshire"],
["PER","Perth"],
["POW","Powys"],
["RAD","Radnorshire"],
["RFW","Renfrewshire"],
["ROC","Ross and Cromarty"],
["ROX","Roxburghshire"],
["RUT","Rutland"],
["SAL","Shropshire"],
["SEL","Selkirkshire"],
["SFK","Suffolk"],
["SGM","South Glamorgan"],
["SHI","Shetland"],
["SOM","Somerset"],
["SRK","Sark"],
["SRY","Surrey"],
["SSX","Sussex"],
["STD","Strathclyde"],
["STI","Stirlingshire"],
["STS","Staffordshire"],
["SUT","Sutherland"],
["SXE","East Sussex"],
["SXW","West Sussex"],
["SYK","South Yorkshire"],
["TAY","Tayside"],
["TWR","Tyne and Wear"],
["TYR","Tyrone"],
["WAR","Warwickshire"],
["WES","Westmorland"],
["WGM","West Glamorgan"],
["WIG","Wigtownshire"],
["WIL","Wiltshire"],
["WIS","Western Isles"],
["WLN","West Lothian"],
["WMD","West Midlands"],
["WOR","Worcestershire"],
["WRY","West Riding of Yorkshire"],
["WYK","West Yorkshire"],
["YKS","Yorkshire"]],
"US":[
["AK","Alaska"],
["AL","Alabama"],
["AR","Arkansas"],
["AS","American Samoa"],
["AZ","Arizona"],
["CA","California"],
["CO","Colorado"],
["CT","Connecticut"],
["DC","District Of Columbia"],
["DE","Delaware"],
["FL","Florida"],
["FM","Federated States Of Micronesia"],
["GA","Georgia"],
["GU","Guam"],
["HI","Hawaii"],
["IA","Iowa"],
["ID","Idaho"],
["IL","Illinois"],
["IN","Indiana"],
["KS","Kansas"],
["KY","Kentucky"],
["LA","Louisiana"],
["MA","Massachusetts"],
["MD","Maryland"],
["ME","Maine"],
["MH","Marshall Islands"],
["MI","Michigan"],
["MN","Minnesota"],
["MO","Missouri"],
["MP","Northern Mariana Islands"],
["MS","Mississippi"],
["MT","Montana"],
["NC","North Carolina"],
["ND","North Dakota"],
["NE","Nebraska"],
["NH","New Hampshire"],
["NJ","New Jersey"],
["NM","New Mexico"],
["NV","Nevada"],
["NY","New York"],
["OH","Ohio"],
["OK","Oklahoma"],
["OR","Oregon"],
["PA","Pennsylvania"],
["PR","Puerto Rico"],
["PW","Palau"],
["RI","Rhode Island"],
["SC","South Carolina"],
["SD","South Dakota"],
["TN","Tennessee"],
["TX","Texas"],
["UT","Utah"],
["VA","Virginia"],
["VI","Virgin Islands"],
["VT","Vermont"],
["WA","Washington"],
["WI","Wisconsin"],
["WV","West Virginia"],
["WY","Wyoming"]]};
function populateState(countrySelect, stateSelect) {
var country = countrySelect.value;
var states = statesByCountry[country];
var options = '<option value="">Select state</option>';
for(var i in states) {
state = states[i];
abbr = state[0];
full = state[1];
options += '<option value="' + abbr + '">' + full + '</option>';
}
stateSelect.innerHTML = options;
stateSelect.selectedIndex = 0;
}
function createLocationPicker(idCountrySelect, idStateSelect) {
var countrySelect = document.getElementById(idCountrySelect);
var stateSelect = document.getElementById(idStateSelect);
countrySelect.innerHTML = countryOptions;
countrySelect.onchange = function() { populateState(countrySelect, stateSelect); };
countrySelect.onchange();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment