【发布时间】:2015-08-24 23:06:00
【问题描述】:
我有一个网站,我需要根据媒体系列过滤媒体类型列表。即:如果选择print,则必须只显示与打印有关的选项,如果选择digital,则必须仅显示与数字有关的选项。
我可以用新值更新列表,但它们不再可点击?
以下是截图:
我已经在使用:$("#mec_id").trigger("liszt:updated"); 其中mec_id 是选择的 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");
},
【问题讨论】:
-
你用什么插件来选择输入?
标签: javascript jquery ajax jquery-chosen