0

4 つのドロップダウンがあり、手動で入力しています。

ここで、最初のドロップダウン オプションを選択し、次に 2 番目 3 番目 4 番目のドロップダウンで、その項目またはオプションを削除できる javacsript を追加したいと考えています。

同じ流れが 2 番目、3 番目、4 番目などにも当てはまります。

コードを提供していますが、今のところうまく機能していません。

つまり、最初のオプションが選択され、2 番目、3 番目、4 番目のドロップダウンからアイテムが削除された場合です。

 function RemoveItems(){
     var List1 = document.getElementById("ddlSortField");
     var sortList1 = List1.options[List1.selectedIndex].text;

     var List2 = document.getElementById("ddlSortField2");
     var sortList2 = List2.options[List2.selectedIndex].text;
     List2.options.remove(sortList1);

     var List3 = document.getElementById("ddlSortField3");
     var sortList3 = List3.options[List3.selectedIndex].text;
     List3.options.remove(sortList2);

     var List4 = document.getElementById("ddlSortField4");
     var sortList4 = List4.options[List4.selectedIndex].text;
     List4.options.remove(sortList3);
}
4

4 に答える 4

1

@Muhammad Omair のものとは少し異なるものを作成しました。これはもう少しダイナミックです。これはjQueryであることに注意してください

var removeSelection = function(select) {
    $('select').filter(':not(#' + select.attr('id') + ')').each(function() {
        var index = select.find(':selected').index();
        $(this).find('option:eq(' + index + ')').remove();
    });
};

$(function() {
    $('select').change(function() {
        removeSelection($(this));
    });
});

そして、ここにそれのjsfiddleがありますhttp://jsfiddle.net/cA3F9/

于 2013-04-10T08:41:34.487 に答える
1

次のようなコードを使用できます: jsFiddle

基本的に、最初にchangeイベントを各リストにバインドし、値を変更すると、後ですべてのリストでこれらの要素を非表示にします...

于 2013-04-10T08:36:57.587 に答える
1

あなたのコードで:

> function RemoveItems(){

大文字で始まる変数名は、慣例により、コンストラクター用に予約されているため、次のようになります。

function removeItems() {

>     var List1 = document.getElementById("ddlSortField");
>     var sortList1 = List1.options[List1.selectedIndex].text;

したがって、 sortList1は文字列になります。

>     var List2 = document.getElementById("ddlSortField2");
>     var sortList2 = List2.options[List2.selectedIndex].text;
>     List2.options.remove(sortList1);

オプションコレクションのremoveメソッドは、オプションの 1 つのインデックスである単一のパラメーターを取ります。sortList1の値もList2のオプションの数も示していません。オプション コレクションはライブであるため、オプションを削除すると、他のオプションのインデックスが調整され、0 から まで連続する可能性があることに注意してください。options.length - 1

于 2013-04-10T08:44:41.730 に答える