我有一个网站,我需要根据媒体系列过滤媒体类型列表。即:如果选择了print
,它必须只显示与打印相关的选项,如果选择了digital
,它必须只显示与数字内容有关的选项。
我可以使用新值更新列表,但是它们不再可以点击了吗?
以下是截图:
我已在使用:$("#mec_id").trigger("liszt:updated");
其中mec_id
是select的ID。以下是选择media family
后的HTML,当尝试点击media type
时,它没有提供单击/选择选项的选项。在代码中我选择了print
,因为那里的下拉列表只有一个值(为了节省代码中的空间)。
HTML:
<select id="mec_id" class=" chosen-select" tabindex="-1" multiple="" style="width: 100%; display: none;" data-placeholder="Select Media Type" name="mec_id[]">
<option data-val="12" value="print">print</option>
</select>
<div id="mec_id_chosen" class="chosen-container chosen-container-multi" style="width: 349px;" title="">
<ul class="chosen-choices">
<li class="search-field">
<input class="default" type="text" style="width: 132px;" autocomplete="off" value="Select Media Type" tabindex="8">
</li>
</ul>
<div class="chosen-drop">
<ul class="chosen-results">
<li class="active-result" data-option-array-index="12">print</li>
</ul>
</div>
</div>
JavaScript / JQuery(AJAX Success调用的功能):
success: function (data) {
var ul = document.createElement('ul');
ul.className = "chosen-results";
for (var i = 0; i < data.length; i++) {
if (i == 0) {
$('#media_types .chosen-drop').contents().remove();
$('#mec_id').contents().remove();
}
var text = data[i].text;
var li = document.createElement('li');
li.className = "active-result";
li.setAttribute('data-option-array-index', data[i].id);
li.innerHTML = text;
ul.appendChild(li);
// create options
var option = document.createElement('option');
option.setAttribute('data-val', data[i].id);
option.value = data[i].text;
option.text = data[i].text;
document.getElementById("mec_id").appendChild(option);
}
$('#mec_id_chosen .chosen-drop').append(ul);
$("#mec_id").trigger("liszt:updated");
},