0

美好的一天社区,

我有一个 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时或创建后以某种方式添加选定的值,但我不知道如何。有谁能够帮助我?

4

1 回答 1

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根据您的要求使用。

于 2013-09-14T07:10:23.383 回答