2016-11-14 43 views
0

我有級聯Select2 ddl,當我選擇主ddl時,我填充Detail ddl時沒有任何問題。另一方面,當我選擇主設備上的另一個項目,然後單擊詳細信息時,第一次詳細信息ddl將僅列出以前的項目一個毫秒。因此,當主ddl的選定索引更改時,我需要清除除選定項目以外的所有列表項目。可能嗎?我嘗試了以下所有解決方法,但他們只清除選定的項目。任何想法?清除Select2的所有列表項,而不是所選的

$('#ProjectId').select2('data', null); 
$('#ProjectId').select2('data', { id: null, text: null }) 
$('#ProjectId').empty(); 
$('#ProjectId').val(null).trigger("change"); 
$("#ProjectId").remove(); 
$('#ProjectId').val('').trigger('change'); 


@Html.DropDownListFor(m => m.ProjectId, Enumerable.Empty<SelectListItem>(), "Select") 


$(document).ready(function() { 

    var issueType = $("#ProjectId"); 

    issueType.select2({ 
     allowClear: true, 
     ajax: { 
      url: '/Controller/GetProjects', 
      dataType: 'json', 
      delay: 250, 
      data: function (params) { 
       return { 
        query: params.term, //search term 
        page: params.page, 
        id: selectedMasterId 
       }; 
      }, 
      processResults: function (data, page) { 
       var newData = []; 
       $.each(data, function (index, item) { 
        newData.push({ 
         id: item.Id, 
         text: item.Description 
        }); 
       }); 
       return { results: newData }; 
      }, 
      cache: true 
     }, 
     escapeMarkup: function (markup) { return markup; }, // let our custom formatter work 
    }); 

}); 


$('#MasterId').change(function() { 

    selectedMasterId = $(this).val(); 

     $('#ProjectId').select2('val', ''); 
     $('#ProjectId').select2('data', null); 
    } 
}); 
+0

@AniketSahrawat發佈,在此先感謝... –

+1

哪個選擇2的版本? (顯然有一些問題與V4) –

+0

@StephenMuecke選擇二4.0.0 –

回答

1

在選擇元素放在onchange="removeOthers(this)"在js代碼寫這個函數:

function removeOthers(that){ 
    $('option', that).not(':eq(0), :selected').remove(); 
    //now refresh your select2 
} 
+1

不知道爲什麼,這個答案是downvoted –

+0

我不downvoter,但投+您的幫助。另一方面,由於沒有顯示事件描述,答案似乎不存在。你可以更新它的完整答案? –