0

我正在尝试填充一个组合框,但是每次我在数据库中添加一个新项目时,我的组合框都会显示重复的值,这是我的代码:

 var items = "";
 $.post("ProductFail.aspx?cmd=fill", function (d) {

    var lst = eval("(" + d + ")");
    alert(lst);

    for (var i = 0; i < lst.length; i++) {
        items += "<option value='#PID#'>#PNAME#</option>";
        items = items.replace("#PID#", lst[i].P_Number);
        items = items.replace("#PNAME#", lst[i].P_Name);
        $(".sel").append(items);
    }

 });
4

2 回答 2

1

由于 items 是单个组合框,因此您不需要执行 +=,因为您已经将它附加到“.sel”的末尾。

for (var i = 0; i < lst.length; i++) {
    items = "<option value='#PID#'>#PNAME#</option>";
    items = items.replace("#PID#", lst[i].P_Number);
    items = items.replace("#PNAME#", lst[i].P_Name);
    $(".sel").append(items);
}
于 2013-05-26T07:42:59.610 回答
1

问题是你正在做 += 以及追加。我们甚至可以将代码简化如下。

for (var i = 0; i < lst.length; i++) {
    $(".sel").append("<option value='"+lst[i].P_Number+"'>"+lst[i].P_Name+"</option>");
}
于 2013-05-26T07:51:55.857 回答