选择的JavaScript无法动态点击/选择更新

时间:2015-01-19 17:43:55

标签: javascript jquery ajax jquery-chosen

我有一个网站,我需要根据媒体系列过滤媒体类型列表。即:如果选择了print,它必须只显示与打印相关的选项,如果选择了digital,它必须只显示与数字内容有关的选项。

我可以使用新值更新列表,但是它们不再可以点击了吗?

以下是截图:

enter image description here

enter image description here

enter image description here

我已在使用:$("#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");
            },

0 个答案:

没有答案