我有一个数组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;
}

09-25 17:58