C# DropdownList未删除以前的元素。(JQuery)

C# DropdownList未删除以前的元素。(JQuery),c#,jquery,asp.net-mvc,C#,Jquery,Asp.net Mvc,我有两个下拉列表 第一是显示公司,第二是与特定公司相关的空缺 所以,当我选择公司时,我会在第二个选择器中看到与之相关的空缺 下面是视图中的代码 <div class="right-grid-in-grid" style="width:100%;"> <div style="margin-left:20px;width:50%; "> @Html.DropDownList("Company", View

我有两个下拉列表

第一是显示公司,第二是与特定公司相关的空缺

所以,当我选择公司时,我会在第二个选择器中看到与之相关的空缺

下面是视图中的代码

<div class="right-grid-in-grid" style="width:100%;">
                <div style="margin-left:20px;width:50%; ">
                    @Html.DropDownList("Company", ViewBag.Companies as SelectList, "Компания", new { @class = "greeting" })
                    @Html.ValidationMessageFor(model => model.VacancyId, "", new { @class = "text-danger" })
                </div>
                <div style="margin-left:20px;width:100%">
                    <select name="id" id="vacancy" style="width:55%" class="greeting" data-url="@Url.Action("Vacancies","Questions")" >
                        <option value="" disabled selected>Вакансия</option>
                    </select>
                </div>

            </div>
我用AJAX调用填充第二个选择器,如下所示

<script>
$(function () {
        $("#Company").change(function (e) {
            var $vacancy = $("#vacancy");
            var url = $vacancy.data("url") + '?companyId=' + $(this).val();
            $.getJSON(url, function (items) {
                $.each(items, function (a, b) {
                    $vacancy.append('<option value="' + b.Value + '">' + b.Text + '</option>');
                });
            });
        });
    });
</script>
我在这方面的问题是:当我第一次选择公司时,我看到了所有与之相关的空缺。但当我选择另一家公司时,我会看到第一家公司的空缺和第二家公司的空缺


我如何解决这个问题?

您错过了在公司变更活动中清除空缺下拉列表。因此,添加$emptance.empty;在脚本代码中

<script>
$(function () {
     $("#Company").change(function (e) {

        $("#vacancy").empty();  
        var $vacancy = $("#vacancy");
        var url = $vacancy.data("url") + '?companyId=' + $(this).val();
        $.getJSON(url, function (items) {
            $.each(items, function (a, b) {
                $vacancy.append('<option value="' + b.Value + '">' + b.Text + '</option>');
            });
        });
    });
});

您错过了在公司变更活动中清除空缺下拉列表。因此,添加$emptance.empty;在脚本代码中

<script>
$(function () {
     $("#Company").change(function (e) {

        $("#vacancy").empty();  
        var $vacancy = $("#vacancy");
        var url = $vacancy.data("url") + '?companyId=' + $(this).val();
        $.getJSON(url, function (items) {
            $.each(items, function (a, b) {
                $vacancy.append('<option value="' + b.Value + '">' + b.Text + '</option>');
            });
        });
    });
});

首先清除选项-$SPANCE.empty;在使用$.eachAnd之前,建议您研究Thank's it中的代码helps@StephenMueckeClear第一个选项-$SPANCE.empty;在使用$.eachAnd之前,建议您研究Thank's it中的代码helps@StephenMueckeThank是的,伙计,这很有帮助汉克的伙计,这很有帮助