使用jquery在下拉列表中显示元素

时间:2013-09-14 06:19:50

标签: javascript jquery html asp.net asp.net-mvc-4

美好的一天社区,

我有一个ASP.NET MVC4项目,在编辑页面我使用jquery脚本。但是我在页面上显示元素时遇到问题。

以下是我在更改前的下拉列表中的HTML标记:

<select id="ProgramId" name="ProgramId"><option value=""></option>
    <option value="1">testrtu1</option>
    <option value="2">testrtu2</option>
    <option value="3">testtsi</option>
    <option selected="selected" value="4">testrtu3</option>
</select>

这是在jquery改变之后

<select id="ProgramId" name="ProgramId"><option value=""></option>
    <option value="1">testrtu1</option>
    <option value="2">testrtu2</option>
    <option selected="selected" value="4">testrtu3</option>
</select>

但是它显示在页面上而不是选定的元素testrtu3,始终显示第一个元素。当我点击保存按钮保存我的第一个值。

这是我的jQuery功能:

$(document).ready(function () {
    var values = [];
    $(".checkboxUniversities:checked").each(function () {
        values.push($(this).val());
    });
    $.getJSON('/Administrator/ProgramList/' + values, function (data) {
        alert('Return json result new information');
        var items = '<option disabled>Select a Program</option>';
        $.each(data, function (i, program) {
            items += "<option value='" + program.Value + "'>" + program.Text + "</option>";
        });
        $('#ProgramId').html(items);
    });
    //var selectedElement = $("#ProgramId").find(":selected").text();
});

我想我需要以某种方式在dropdown内创建我的jquery时或创建后添加所选值,但我不知道如何。有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

在向您的下拉列表中添加选项之前,您必须在变量中保存selected indextext并进一步使用。

示例代码:

<select id="ProgramId" name="ProgramId"><option value=""></option>
    <option value="1">testrtu1</option>
    <option value="2">testrtu2</option>
    <option selected="selected" value="4">testrtu3</option>
</select>
<input id="click" type="button" value="click me"/>

$(document).ready(function(){
    var option = '<option value="1">testrtu1</option><option value="2">testrtu2</option><option value="3">testtsi</option><option  value="4">testrtu3</option>';
    $("input#click").click(function(){
        var selInx = $("select[name='ProgramId'] option:selected").index();
    $('#ProgramId').html(option);
        $('select#ProgramId').prop('selectedIndex', selInx);
    });
});

DEMO FIDDLE

注意:由于我们无法连接到您的后端代码以获取代码本身硬编码的选项,并且点击按钮下拉列表将替换为最新选项,并将根据第一个选项更新所选索引。您可以根据自己的要求使用selectedindextext