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 indexまたはtext変数に保存して、さらに使用する必要があります。

サンプルコード:

<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

注:コード自体にハードコードされたオプションを取得するためにバックエンド コードに接続できないため、ボタンのドロップダウンをクリックすると、最新のオプションに置き換えられ、最初のオプションに基づいて選択されたインデックスが更新されます。要件に応じて、またはいずれselectedindexかを使用できtextます。

于 2013-09-14T07:10:23.383 に答える