【问题标题】:Populating Select List Using JQuery Error使用 JQuery 错误填充选择列表
【发布时间】:2019-08-27 21:54:53
【问题描述】:

我有以下代码来填充表单上的下拉框。该代码似乎可以工作,但会引发错误“cannot read property id of undefined”。

jquery

function LoadAnnualCredits() {
    try {
        var $dropdown = $("#creditQty");
        $dropdown.empty();
        var arrayList = [
            { "Id": 5000, "Name": "5,000" },
            { "Id": 10000, "Name": "10,000" }
        ];
        for (var i = 0; i <= arrayList.length; i++) {
            $dropdown.append($("<option />").val(arrayList[i].Id).text(arrayList[i].Name));
        }
    }
    catch (err) {
        alert(err);
    }
}

Razor 查看代码

@Html.DropDownListFor(m => m.NumCredits, Model.CreditQty, "Choose Qty", new { @class = "form-control", @id = "creditQty", @style = "width: 160px; height: 36px; line-height: 36px; padding: 4px;", @onchange = "CreditQtyChanged(this.value);" })

我尝试使用 forEach 方法。没有错误消息,但由于某种奇怪的原因,它在下拉列表中给了我重复的项目:

5,000

5,000

10,000

10,000

function LoadAnnualCredits() {
    try {
        var $dropdown = $("#creditQty");
        $dropdown.empty();
        let arrayList = [
            { "Id": 5000, "Name": "5,000" },
            { "Id": 10000, "Name": "10,000" }
        ];
        arrayList.forEach(function (e) {
            $dropdown.append($('<option><option/>').val(e.Id).text(e.Name));
        });
    }
    catch (err) {
        alert(err);
    }
}

【问题讨论】:

    标签: jquery asp.net asp.net-mvc-4 asp.net-core


    【解决方案1】:

    您的错误可能是 FOR 循环的条件,它是 (i ,更改为 (i ,变量"i" 等于0,所以它找不到位置等于2,因为它的数组只有两个元素(去到位置 1)。 Javascript 中的数组从 0 开始, 所以找不到位置 2 的元素,这就是你正在做的事情。只需更改条件即可解决问题。

    【讨论】:

    • 愚蠢的我。花了太长时间在办公室互操作项目上疯狂地从 1 开始索引。我应该发现那个。谢谢马特乌斯 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    • 2011-01-10
    • 2012-01-30
    • 2023-04-06
    • 1970-01-01
    相关资源
    最近更新 更多