2017-08-29 73 views
0

我有一個列表框用戶選擇DROPDOWNLIST一個選項後,我需要刷新。更新/刷新列表框(「選自:更新」)

View of lists

圖片是自解釋的。如果在列表框中選擇部門 - >裝載部門列表,則選擇增值稅清單/增值列表中的增值稅列表。 (默認部門列表在加載頁面時加載)。我目前正在嘗試trigger("chosen:updated"),並沒有運氣清爽的列表框。這是我的功能代碼。

$(function() { 
$("#SelectFilter").change(function() { 

    if (document.getElementById('SelectFilter').value == 1) //dropdownlist 
    { 
     //empty listbox   
     $('#SelectItems').empty(); 

     //append new list to listbox 
     $.each(data.Departments, function (index, element) { 
      $('#SelectItems').append('<option value="' + element.Value + '">' 
       + element.Text + '</option>'); 
     }); 

     //refresh 
     $('#SelectItems').trigger("chosen:updated"); 
    }  
    if (document.getElementById('SelectFilter').value == 2) 
    {    
     $('#SelectItems').empty(); 

     $.each(data.VatRates, function (index, element) { 
      $('#SelectItems').append('<option value="' + element.Value + '">' 
       + element.Text + '</option>'); 
     }); 

     $('#SelectItems').trigger("chosen:updated"); 
    } 
}); 

});

認識從下拉列表選擇值心不是一個問題,工作正常。目前沒有使用新選擇更新/刷新列表框。而我無法弄清楚我是否會因此而出錯。

回答

0

儘量把所有的代碼創建列表成一個函數,然後對艇員選拔選定的項目之一調用該函數生成一個新的列表,而不是使用.trigger綁定一個事件()。如果您也提供HTML部分,我會很快發佈示例代碼。

+0

我目前從控制器,將它們作爲JSON對象'$ .getJSON(「/產品/ GetLists」,函數(數據)' – LavsTo

0

如果你有認識,或填充輔助選擇標記,或與數據的初始加載所選擇的價值問題目前尚不清楚給我。所以我提供了三個步驟的例子。

首先,要檢測所選值,您需要提供.change()處理程序並使用.val()提取選定的值。一些與此類似:

$("#SelectFilter").change(function() { 
    var v = $(this).val(); 
    if (v=="value1") { 

    } else if (v=="value2") { 

    } else { 

    } 
}); 

那麼每個檢測到的變化有刷新二次選擇標記,東西這樣簡單的內容...

$("#SelectItems").empty(); 
    ['first item','second item','troisième'].forEach((v,i) => 
    $("#SelectItems").append($("<option>").val("item"+i).text(v)) 
); 
} 

最後觸發初始加載應儘可能觸發更改事件

$("#SelectFilter").change(); 

我已經把所有的步驟可以這種提琴簡單https://jsfiddle.net/mud9u8yL/6/

+0

確認所選擇的值檢索我的列表(S)不是問題。測試了警報,它工作正常。對不起,我沒有說清楚。所以我只需要在添加新列表後添加'$(「#SelectFilter」)。change();'以澄清? – LavsTo

+0

我不清楚你的問題是什麼,所以我不能說觸發事件就是問題所在。它不會傷害你嘗試。 –

+0

的目標是在下拉列表中進行選擇時刷新列表框。列表框不會在點擊/更改下拉菜單時使用新列表刷新/更新。 – LavsTo