javascript - return Json 函数没有更新我的下拉列表

标签 javascript jquery asp.net asp.net-mvc json

我有一个包含填充下拉列表的 View ,我添加了一个按钮,以便用户可以在 jquery 模式中添加新的下拉列表值,因此当用户单击添加新的下拉列表值时,我想刷新下拉列表,但是目前没有任何更新。

这是我对下拉列表的看法

@model Communique.Models.PersonSupplierDetailsModel
@using Boxharry.Extensions;
@using Communique.Models;

@{
    List<SelectListItem> languages = ViewData["languages"] as List<SelectListItem>;

    ViewBag.Title = "Create";
    Layout = "~/Views/Shared/_LayoutApplicationModal.cshtml";

    if(Model.Languages == null)
    {
        Model.Languages = new List<LanguageModel>();
    }
}

<section class="page-content tabs-panel-content">          
    <div class="workspace-column ">
        <div class="modal-content person-supplier-details">
            <div class="sub-menu">
                <a class="create language-modal" href="#">Add a new Language</a>
            </div>
            <div class="modal-workspace-contents modal-form">
                @using (Html.BeginForm("SupplierDetails", "People"))
                {
                        @for(int i = 0; i < 3; i++)
                        {
                            var language = Model.Languages.ElementAtOrDefault(i);
                            if (language == null) { Model.Languages.Add(new LanguageModel()); }

                            @Html.HiddenFor(x => x.Languages[i].Id)
                            @Html.WrappedDropDownListFor(x => x.Languages[i].LanguageFrom, languages, new { @class = "form-item-container dropdownlist supplier-languages" }, "", "Please select...")
                            @Html.WrappedDropDownListFor(x => x.Languages[i].LanguageTo, languages, new { @class = "form-item-container dropdownlist supplier-languages" }, "", "Please select...")
                        }

                }
            </div>
        </div>
    </div>
</section>

这是调用的 Controller 函数

[HttpGet]
        public ActionResult GetLanguages()
        {
            CommuniqueWrapper communiqueWrapper = new CommuniqueWrapper();

            var languages = communiqueWrapper.GetTags("Languages", true);

            return Json(languages, JsonRequestBehavior.AllowGet);
        }

这是应该刷新下拉列表的 View

@{
    Layout = null;
}

<script>
    $.getJSON("@Url.Action("GetLanguages")", function (data) {
        debugger;
        var $languages = $('.supplier-languages');
        $languages.children().filter(function () {
            return $(this).attr('value');
        }).remove();
        $.each(data, function () {
            debugger;
            var option = $('<option />', {
                text: this.Text,
                value: this.Value
            });

            $languages.append(option);
        });
    });
    jSnap.modals.removeModal();
</script>

谁能看出为什么我的下拉列表不刷新?

最佳答案

试试这个

var select = $("#dropdownid");
select.empty();
  $.each(data, function (index, itemData) {
    select.append($('<option/>', {
      value: itemData.Value,
      text: itemData.Text
     }));
  });

关于javascript - return Json 函数没有更新我的下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24573546/

相关文章:

javascript - 如何使用javascript jquery按字母顺序对表格内的默认td进行排序

javascript - 在 Android 中通过 Javascript 访问加速度计?

javascript - 修复头部时 Bootstrap 滚动表中断

c# - 此结束标记没有匹配的开始标记。我搞砸了某个地方。请帮我看看好吗?

c# - 如何让单元测试在 x64 平台上运行

php - 干净的 URL - 我该如何实现这一点?

javascript - javascript中可区分的颜色生成

jquery - 在 Magnificent Popup 中更改 ID 小对话框名称

javascript - jQuery 未定义 twitter bootstrap

asp.net - Repeater 内的 Gridview