jquery - 如何在其他 'select-chosen' 下拉列表的基础上动态更新 'select-chosen' 类下拉列表的值?

标签 jquery css jquery-plugins jquery-chosen prototype-chosen

我有两个下拉菜单。如果我不使用 select-chosen 类并将它们简单地用作 form-control 类,它们的 HTML 很简单,我可以更改第二个下拉列表的值通过发送基于第一个下拉列表值的 AJAX 请求,如下面的代码片段所示:

<select id="firsttDropDown" class='form-control'>
    <option value='1'>Value 1</option>
</select>

<select id="secondDropDown" class='form-control'>
    <option value='2'>Value 2</option>
</select>
$("#firstDropDown").on('change', function(e) {
    var loc_id = e.target.value;
    $.get('my/url/', function(data) {
        // success data
        $('#secondtDropDown').empty();
        $.each(data.list, function(index, eObj){
            $('#secondtDropDown').append('<option value=' + eObj.id + '>' + eObj.first_name + ' ' + eObj.last_name + '</option>');
        });
    });
});

但是,当我想使用 select-chosen 类使这些下拉菜单看起来更好时,一切都出错了。这个类完全改变了我的下拉菜单的 HTML。

<select id="firstDropDown" class="select-chosen" name="firstDropDown" data-placeholder="Choose a ..." style="display: none;">
    <option value="1">Value 1</option>
</select>
<div class="chosen-container chosen-container-single" style="width: 100%;" title="" id="firstDropDown_chosen">
    <a class="chosen-single" tabindex="-1">
        <span>Vlaue 1</span>
        <div><b></b></div>
    </a>
    <div class="chosen-drop">
       <div class="chosen-search">
          <input type="text" autocomplete="off">
       </div>
       <ul  class="chosen-results">
           <li class="active-result result-selected" data-option-array-index="0">
               Value 1
           </li>
       </ul>
    </div>
</div>

<select id="secondDropDown" class="select-chosen" name="Visitor_user_id" style="display: none;">
    <option value="71">Andrew Simond</option>
</select>
<div class="chosen-container chosen-container-single" style="width: 100%;" title="" id="secondDropDown_chosen">
    <a class="chosen-single" tabindex="-1">
        <span>Value 1</span>
        <div><b></b></div>
    </a>
    <div class="chosen-drop">
        <div class="chosen-search">
            <input type="text" autocomplete="off">
        </div>
        <ul class="chosen-results">
            <li class="active-result result-selected" data-option-array-index="0">Andrew Simond</li>
            <li class="active-result" data-option-array-index="1">Value 1</li>
            <li class="active-result" data-option-array-index="2">Value 2</li>
            <li class="active-result" data-option-array-index="3">Value 3</li>
            <li class="active-result" data-option-array-index="4">Value 4</li>
        </ul>
    </div>

现在我的问题是,我如何处理所有这些奇怪的(对我来说,不是对你们所有人来说)寻找 HTML 来更新来自 ajax 请求的下拉列表,就像我在上面的代码片段中所做的那样?

最佳答案

一旦我们设置了值。我们必须刷新选择框。

$('select').val(123);
$('select').trigger("liszt:updated");

我希望这会奏效。

关于jquery - 如何在其他 'select-chosen' 下拉列表的基础上动态更新 'select-chosen' 类下拉列表的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34017436/

相关文章:

jquery - 在jsp中循环通过div

jQuery 在评论标签后插入 html

javascript - jQuery 将选择器转换为负数

jquery - 发现实际页面里面是否有jqGrid对象

javascript - 没有搜索字段的 jQuery Chosen 插件

javascript - Ajax 使用 Enter 和 onclick 提交表单

css - Bootstrap 3 导航栏折叠无法正常工作

javascript - 从 div 内的文本中删除下划线,其中 div 包含在 <a> 标记中

css - 如何通过 div::before 获取图像?

javascript - 如何使用 AnythingSlider(jquery 插件)制作更大的幻灯片?