如何在javascript上添加数据asp:dropdownlist项?

时间:2014-05-15 13:19:41

标签: javascript asp.net ajax

我在aspx页面上有一个ajax函数。

 function fav() {

            var p = "3";

            var e = document.getElementById('<%= ddlCountry.ClientID %>');  
            var j = e.options[e.selectedIndex].text;

                //var aralik = p[1] + p[2];

                $.ajax({
                    type: "POST",
                    url: "STry.aspx/Fill",
                    data: "{'Param': '" + p + "','Param2': '" + j + "'}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    error: function (xhr, status, error) {
                        //alert the error if needed              
                    },
                    success: function (msg) {

                        var data = msg.d;

                        if (data.indexOf(',') < 0)
                        {
                            document.getElementById('<%= ddlCity.ClientID %>').options.add(data);
                        }
                        else
                        {
                            data.split(",").forEach(function (item) {
                                var opt = document.createElement(item);
                                document.getElementById('<%= ddlCity.ClientID %>').options.add(opt);
                            });
                        }

                    }

                });

        }

数据返回var data = msg.d;因此,我的返回数据为data。像这样的数据类型,如果超过一个;

  

文本1,文本2,文字3,文本4

我希望拆分此值并添加ddlCity

的下拉列表

这部分是我的尝试:

var data = msg.d;

      if (data.indexOf(',') < 0)
        {
          document.getElementById('<%= ddlCity.ClientID %>').options.add(data);
        }
         else
         {
            data.split(",").forEach(function (item) {
            var opt = document.createElement(item);
            document.getElementById('<%= ddlCity.ClientID %>').options.add(opt);
         });

但它不起作用。

简单地说,我有一个返回数据,如(text1,text2,text3,text4)如何在javascript上的ddlCity项中添加返回数据?

感谢您的回答。

2 个答案:

答案 0 :(得分:1)

试试这个

data.split(",").forEach(function (item) {
var option = document.createElement("option");
option.text = item;
option.value = item;
var ddl= document.getElementById('<%= ddlCity.ClientID %>')
ddl.appendChild(option);
});

检查以下内容 append option to select menu?

答案 1 :(得分:1)

在代码段中使用forEach

演示:http://jsfiddle.net/abhitalks/63eX6/1/

var data = "text1,text2,text3,text4";
var ddl = document.createElement("select");
ddl.id = "s1";
document.getElementById("container").appendChild(ddl);
data.split(",").forEach(function(item) {
    var opt = document.createElement("option");
    opt.value = item;
    opt.text = item;
    ddl.appendChild(opt);
});
  1. 创建select,为其分配id,并将其附加到现有容器,例如div
  2. 循环拆分数组,创建option元素,指定valuetext,然后将其附加到select