如何重置chosen-jquery?

9wbgstp7  于 2023-03-29  发布在  jQuery
关注(0)|答案(1)|浏览(102)

我用的是jquery 3.3.1 slim min,选择了1.8.7
在一个表单中,我有一个选择多个和一个重置按钮:

<form>
  <select id="users" name="users" tabindex="2" class="form-control chosen-select" multiple>
    <option value=""></option>
    <option value="1">1</option>
  </select>

  <button type="button">
    Clear
  </button>

</form>

我做的初始化的选择:

$("#users")
  .chosen({
    no_results_text: "Oops, nothing found!",
  })
  .change(function(event) {

    if (event.target == this) {

      $users = $(this).val()
    }
  })

当我尝试重置所选的,它不更新html界面:

$('button').on('click', function() {
  $("#users").val([]).trigger('chosen:updated')
})

我忘了什么?
这样,我期望它会更新接口,但是它重置了值,但没有更新接口html

$("#users").val([]).trigger('chosen:updated')

我也试过,但没有成功

$("#users").val('').trigger('chosen:updated')

编辑
之前:before
添加选项Add options
控制台Console
选项未被删除,但值已重置after

mspsb9vt

mspsb9vt1#

看起来你的代码可以工作。也许你没有导入CSS库,这会造成混乱:
https://cdnjs.cloudflare.com/ajax/libs/chosen/1.8.7/chosen.min.css

$("#users")
  .chosen({
    no_results_text: "Oops, nothing found!",
  })
  .change(function(event) {

    if (event.target == this) {

      $users = $(this).val()
    }
  });

$('button').on('click', function() {
  $("#users").val('').trigger('chosen:updated')
});

$('a').click(()=>{
  console.log($('#users').val());
});
select {
  width: 200px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.8.7/chosen.jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/chosen/1.8.7/chosen.min.css" rel="stylesheet"/>
<form>
  <select id="users" name="users" tabindex="2" class="form-control chosen-select" multiple>
    <option value=""></option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
  </select>

  <button type="button">
    Clear
  </button>
  <a href="#">Check Value</a>

</form>

相关问题