首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过jquery将项添加到select下拉列表不会成功

通过jquery将项添加到select下拉列表不会成功
EN

Stack Overflow用户
提问于 2016-12-27 18:17:36
回答 6查看 790关注 0票数 0

我正在尝试使用ASP.NET MVC中的jquery动态地填充下拉列表中的项。

这是我的视图代码:

代码语言:javascript
运行
复制
<select id="StartLocation" class="custom-select", onchange = "highlightMarkerById(this.value,0)">
    <option value="">-Start Location-</option>
</select>

这是我调用来获取数据的函数:

代码语言:javascript
运行
复制
function GetLocations() {
    $.ajax({
        type: "POST",
        url: "/MV/GetLocations",
        dataType: "json",
        success: function (data) {
            for (var j = 0; j < data.length ; j++) {
                $('#StartLocation').append($('<option>', {
                    value: data[j].Value,
                    text: data[j].Text
                }));
            }
        },
        error: function () {
            return "error";
        }
    });
}

在MV控制器中,我有如下的GetLocations动作方法:

代码语言:javascript
运行
复制
[HttpPost]
public JsonResult GetLocations()
{
    List<vlocation> locationslist = DBManager.Instance.GetLocations();
    List<SelectListItem> locations = new List<SelectListItem>();
    foreach(var loc in locationslist)
    {
        locations.Add(new SelectListItem { Value = loc.displayName, Text = loc.displayName });
    }

    return Json(locations);
}

我在chrome中进行了调试,发现已经到达了success,并且也在迭代for循环。但是我不明白为什么这些项目没有被添加到下拉列表中。如果我使用相同的代码将一些项添加到下拉列表中,而不是在success中,则这些项将被添加。任何帮助都将不胜感激。

EN

回答 6

Stack Overflow用户

发布于 2016-12-27 18:20:01

可以尝试迭代您的json,如下所示,

代码语言:javascript
运行
复制
var optionAppend = '';
$.each(data,function(i,el){
   optionAppend += '<option value="'+el.Value+'">'+el.Text+'</option>';
});

$('#StartLocation').append(optionAppend);
票数 0
EN

Stack Overflow用户

发布于 2016-12-27 18:26:36

您可以尝试这样做:

代码语言:javascript
运行
复制
 for (var j = 0; j < data.length ; j++) {
                $('#StartLocation').append("<option value="+data[j].Value+" >"+data[j].Text+"</option>");
            }
票数 0
EN

Stack Overflow用户

发布于 2016-12-27 18:29:01

请尝试:-

代码语言:javascript
运行
复制
for (var j = 0; j < data.length ; j++) {
   $("#StartLocation").append($('<option></option>').val(data[j].Value).html(data[j].Text));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41343215

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档