我有一个数组Orte
,其中包含邮政编码和城市名称。
现在,我想根据在输入字段中输入的数字来更改下拉列表。
输入字段具有onchange
功能。功能如下。
到目前为止,该脚本可以正常工作,但for循环后的最后一行除外。它从不添加最后一部分,我也不知道为什么。
有谁可以帮助我吗。
在此先感谢您的解答!
布尔济
function updateOrt(eingabe){
document.getElementById("ort_platzhalter").innerHTML = '<select name="ort">'
for (var i = 1; i <= Orte.length; i++){
if(Orte[i].PLZ == eingabe){
document.getElementById("ort_platzhalter").innerHTML += '<option value="' + Orte[i].id + '">' + Orte[i].Ort + '</option>'
}
}
document.getElementById("ort_platzhalter").innerHTML += "</select>"
}
最佳答案
您应该一口气更新innerHTML。首先建立字符串,然后分配它。另外,数组是零索引的,所以我猜你想从0开始,并且一旦它是Orte
的长度(i = Orte.length)就结束。
function updateOrt(eingabe){
var str = '<select name="ort">'
for (var i = 0; i < Orte.length; i++){
if(Orte[i].PLZ == eingabe){
str += '<option value="' + Orte[i].id + '">' + Orte[i].Ort + '</option>'
}
}
str += "</select>"
// now assign the str to innerHTML
document.getElementById("ort_platzhalter").innerHTML = str;
}