0

4つのドロップダウンリストのjsonを介して、クライアント側のページロードに関するデータを取得しています。

ドロップダウンリスト内の内容を後でページで使用できるように変数に保存できるようにする必要があります。

ご覧のとおり、list2はlist1に依存しています。したがって、list1で値を選択するときは、リスト2で対応する値を除外する必要があります。

これが完了したら、list2の完全なコンテンツをフィルタリングされたコンテンツに置き換えます。

ユーザーが「やり直し」を行う必要がある場合は、もう一度フィルターで除外されるまで、完全な値をドロップダウンリストに再度移動します。

質問は、値をvar変数だけに適切に(IDとテキストの値になるため)保存するにはどうすればよいかを確認したいということです。

さらに、完全なリストを実際のドロップダウンリストに戻す必要がある場合、それを行うためのjQuery構文は何でしょうか?

一致するものをフィルタリングするために見つけた値のコレクションを収集するために、foreachループがあると思いますが、フィルタリングされたドロップダウンリストにどのように割り当てるのでしょうか。基本的には、サーバー側のC#のドロップダウンリストに値を追加するようなものです。

どうもありがとう...

4

2 に答える 2

0

あなたの質問は不明確ですが、私がそれを正しく読んだ場合、後でそれ<select/>を使用するために、aの現在の内容を変数に保存する必要があります。

jQuery .clone()を見てください


この実用的なフィドルの例を参照してください!クローンoptionがに追加されていることを示していますdiv

このHTMLを想定すると:

<select id="foobar">
  <option value="1">01</option>
  <option value="2">02</option>
  <option value="3">03</option>
  <option value="4">04</option>
  <option value="5">05</option>
</select>

select次を使用してコンテンツを取得できます。

$(function() {
  var $selectContents = $('#foobar option').clone();
});
于 2012-07-06T01:19:13.830 に答える
0

実際に値を取得して配列に入れたい場合は、次のような方法を試すことができます。

function getValues(dropDownId) {
    var values = new Array();
    $("#" + dropDownId).children().each(function (i, element) {
        values[i] = {id: element.id, value: element.value};
    });
    return values;
}

function setValues(dropDownId, values) {
    var dropDown = $("#" + dropDownId);
    for (var i = 0; i < values.length; i++) {
        var newItem = $("<option></option>");
        newItem.prop("id", values[i].id);
        newItem.text(values[i].value);
        dropDown.append(newItem);
    }
}

値を取得する場合は、getValuesを呼び出して、select要素のIDを渡します。返された値を保存してから、setValuesを呼び出し、保存されたデータと同じIDを渡します。

于 2012-07-06T01:42:59.160 に答える