2016-09-22 39 views
0

好了,所以這是我的HTML代碼我試圖使用JavaScript創建一個HTML網頁上的動態菜單,但保持有麻煩

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<title>Menus</title> 
<script type="text/javascript" src="Cities.js"> 
</script> 
</head> 
<body> 

<select id="Countries" name="countries" onchange="populate('Countries','Cities')"> 
    <option value="">Country</option> 
    <option value="Ireland">Ireland</option> 
    <option value="Romania">Romania</option> 
    <option value="England">England</option> 
    <option value="Spain">Spain</option> 
    <option value="Germany">Germany</option> 
</select> 

<select id="Cities" name="cities"> 
    <option value="">Cities</option> 
</select> 

</form> 

</body> 
</html> 

好了,一切似乎都在這裏好爲止,這裏是我的JavaScript代碼

//Populates Countries and Cities select form elements 

function populate(s1,s2) 

{ 

var s1 = document.getElementById(s1);//s1==Countries 

var s2 = document.getElementById(s2);//s2==Cities 

s2.innerHTML=""; 

/** 
* if s1==Ireland print Dublin 
*/ 
if(s1.value=="Ireland"){ 
    var optionArray = ["|", "dublin|Dublin"]; 
} 
/** 
* If s1==Romania print Bucharest 
*/ 
else if (s1.value=="Romania"){ 
     var optionArray=["|", "bucharest|Bucharest"]; 
    } 

/** 
* if s1==England print Liverpool 
*/ 
else if (s1.value=="England"){ 
     var optionArray=["|", "liverpool"|"Liverpool"]; 
    } 

/** 
* if s1==Spain print Madrid 
*/ 
else if (s1.value=="Spain") { 
     var optionArray=["|", "madrid"|"Madrid"]; 
} 

/** 
* if s1==Germany print Munich 
*/ 
else if (s1.value=="Germany"){ 
    var optionArray=["|","munich"|"Munich"]; 
} 


for(var option in optionArray){ 
    var pair = optionArray[option].split("|"); 
    var newOption = document.createElement("option"); 
    newOption.value = pair[0]; 
    newOption.innerHTML=pair[1]; 
    s2.options.add(newOption); 
} 

} 

正如你可以看到我想要做的是創造,如果,如果else語句,因此如果從HTML文件一定選擇元素被選中,它會從打印出城國家。

現在奇怪的部分是,它適用於愛爾蘭和羅馬尼亞,當他們被選中時,我可以選擇從其他下拉菜單中選擇都柏林或布加勒斯特,但它不適用於其他任何3個國家?

現在看到它可以用於前兩個選擇元素,這讓我認爲我的for循環或HTML代碼中存在問題,但我並不完全確定。它可能只是一個小問題,我只是看不到我的臉。

任何幫助將不勝感激,謝謝。

+0

「Countries1」是什麼?看看你的開發者控制檯,它會有這個錯誤.... – epascarello

+1

檢查你的報價 – Andreas

+0

哎呀抱歉,這是我嘗試修復它時剩下的一點點。但是,這不是問題。現在只是'國家'。 –

回答

0

像安德烈亞斯提到的問題在於在optionsArray分配新建分配FY引號前兩個其正確:

var optionArray = ["|", "dublin|Dublin"]

其像這之後:

var optionArray=["|", "liverpool"|"Liverpool"]

見多餘報價

Here是修正的前我爲你做的充足。

+0

Ahhhhh謝謝!不知道我是如何錯過的。真是愚蠢的錯誤,再次感謝人。 –

+0

Np很高興幫助。 –