如何使用jQuery重置选择的多选字段?

时间:2012-09-22 12:44:33

标签: jquery jquery-chosen

我有一个带有多个选择字段的表单,使用Formtastic和Chosen创建。

此表单有一个多选字段,下面是它的rails代码:

 = semantic_form_for 'post', :url => action_name_post_path(@post), :html => {:method => :put}, :remote => true do |f|
    = f.input :blogs, :label => _("Blog"), :as => :select, :multiple => :true, :input_html => {:class => "chzn-select"}, :collection => Blog.all

我想使用jQuery重置输入字段(表单已提交并远程重置),我似乎无法弄清楚如何删除所选元素//清除输入字段。问题在于选择了更改输入字段,因此它不是简单的文本区域。

有人能指出我正确的方向吗?

11 个答案:

答案 0 :(得分:12)

似乎两个答案的组合对我有用:

$('.chosen-select option').prop('selected', false).trigger('chosen:updated');

这将取消选择所有选项,并重置所选的下拉列表。

http://jsfiddle.net/donkeysauras/j9yuL/< - 工作示例

答案 1 :(得分:11)

试试这个

$('.chzn-select').val('').trigger('liszt:updated');

答案 2 :(得分:3)

这对我有用:

$('form#form_id').find('select').each(function(i, element) {
    $(element).chosen('destroy');
    $(element).prop("selectedIndex", -1);
    $(element).chosen();
});

答案 3 :(得分:1)

来自documentation

动态更新动态

如果您需要更新选择字段中的选项并希望选择选择更改,则您需要触发选择的选项:已更新"在球场上的事件。 Chosen将根据更新的内容重新构建自己。

$("#form_field").trigger("chosen:updated");

就我而言,它是

jQuery("#my-select-box").trigger("chosen:updated");

my-select-box是selectbox的ID。

答案 4 :(得分:0)

您可以使用multiple select重设jQuery,如下所示

$('.chzn-select option').prop('selected', false);

您选择的class namechzn-select

An working example here

答案 5 :(得分:0)

对于那些可能已经结束这个问题的人(有多个并且需要合并),Chosen已经更新了他们的语法 - 请改用它:

$('.chzn-select').val('').trigger('chosen');

可以为'.chzn-select''select'或您希望使用的其他任何选择方法切换'#yourSelect'

退房:

答案 6 :(得分:0)

这对我来说很好用

$('.reset-btn').click(function(){
    var form = $(this).closest('form').get(0);
    form.reset();
    $('.chosen-select').trigger('chosen:updated');
});

基本上我强制复位后选择表单重置和更新。  :d

答案 7 :(得分:0)

这一切都取决于您选择的设置。它对我有用:

$('.chzn-select-no-search').val('').trigger('liszt:updated');

答案 8 :(得分:0)

此解决方案对我有用

$('#.chosen-select').val('').prop('selected', false).trigger('chosen:updated')

答案 9 :(得分:0)

这只能起作用:

target: "{{ input | regex_findall('^\\S+\\s+INPUT\\b.*', multiline=True)}}"

不工作:

$('#client_filter').html(' '); //this worked

答案 10 :(得分:0)

这是唯一对我有用的东西。 多重选择值是一个数组,因此您应该这样:

$('#elementID')。val([])。trigger('chosen:updated');