2017-10-06 72 views
0

我是PHP和腳本的新手。請幫我解決一件小事。在腳本中的下拉框中佔位符

我得到我的代碼從這裏... http://jsfiddle.net/bdhacker/eRv2W/

我有國家的下拉列表,並指出其中的國家已經顯示「選擇國家」,但是,州/省的空白,直到我們選擇的任何國家。我想要顯示選擇州/省像選擇國家。

這是我的工作鏈接https://www.paradoxaccess.com/lp/country/Access_Roads.html

這裏是我的腳本

// Countries 
 
var country_arr = new Array("Canada", "United States"); 
 

 
// States 
 
var s_a = new Array(); 
 
s_a[0] = ""; 
 
s_a[1] = "Alberta|British Columbia|Manitoba|New 
 
Brunswick|Newfoundland|Northwest Territories|Nova 
 
Scotia|Nunavut|Ontario|Prince Edward Island|Quebec|Saskatchewan|Yukon 
 
Territory"; 
 
s_a[2] = "Alabama|Alaska|Arizona|Arkansas|California|Colorado|Connecticut|Delaware| 
 
District of Columbia|Florida|Georgia|Hawaii|Idaho|Illinois|Indiana|Iowa| 
 
Kansas| Kentucky|Louisiana|Maine|Maryland|Massachusetts|Michigan| 
 
Minnesota|Mississippi|Missouri|Montana|Nebraska|Nevada|New Hampshire 
 
|New Jersey|New Mexico|New York|North Carolina|North 
 
Dakota|Ohio|Oklahoma|Oregon|Pennsylvania|Rhode Island| 
 
South Carolina|South Dakota|Tennessee|Texas|Utah|Vermont|Virginia 
 
|Washington|West Virginia|Wisconsin|Wyoming"; 
 

 
function populateStates(countryElementId, stateElementId) { 
 

 
var selectedCountryIndex = document.getElementById(countryElementId).selectedIndex; 
 
var stateElement = document.getElementById(stateElementId); 
 

 
stateElement.length = 0; // Fixed by Julian Woods 
 
stateElement.options[0] = new Option('Select Province/State', ''); 
 
stateElement.selectedIndex = 0; 
 

 
var state_arr = s_a[selectedCountryIndex].split("|"); 
 

 
for (var i = 0; i < state_arr.length; i++) { 
 
stateElement.options[stateElement.length] = new Option(state_arr[i], 
 
state_arr[i]); 
 
    } 
 
} 
 

 
function populateCountries(countryElementId, stateElementId) { 
 
// given the id of the <select> tag as function argument, it inserts 
 
<option> tags 
 
var countryElement = document.getElementById(countryElementId); 
 
countryElement.length = 0; 
 
countryElement.options[0] = new Option('Select Country', '-1'); 
 
countryElement.selectedIndex = 0; 
 
for (var i = 0; i < country_arr.length; i++) { 
 
    countryElement.options[countryElement.length] = new 
 
Option(country_arr[i], country_arr[i]); 
 
} 
 

 
// Assigned all countries. Now assign event listener for the states. 
 

 
if (stateElementId) { 
 
    countryElement.onchange = function() { 
 
     populateStates(countryElementId, stateElementId); 
 
     }; 
 
    } 
 
} 
 

 

 
    <!-- HTML --> 
 
    <select id="country" name="country"></select> 
 
    <br /> 
 
    
 
    <select name="state" id="state"></select> 
 
    <br/> 
 
    
 
    <script language="javascript"> 
 
     populateCountries("country", "state"); 
 
     
 
    </script>

非常感謝你提前。

+0

你看過這個問題嗎? https://stackoverflow.com/questions/5805059/how-do-i-make-a-placeholder-for-a-select-box – NewToJS

回答

0

嘗試調用onchange函數之外的populateStates函數,以便它執行並填充默認項目。

// Assigned all countries. Now assign event listener for the states. 
if (stateElementId) { 
    populateStates(countryElementId, stateElementId); 
    countryElement.onchange = function() { 
     populateStates(countryElementId, stateElementId); 
    }; 
}