我有多个选择字段的表单,创建使用Formtastic和选择的。
这种形式有多种选择栏,这里是它的轨道代码:
= 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输入字段(在提交表单和远程复位)和I似乎无法找出如何移除所选元素//清除输入字段。 问题是,选择改变输入字段,所以它不是一个简单的文本区域。
任何人都可以点我在正确的方向?
尝试这个
$('.chzn-select').val('').trigger('liszt:updated');
好像两个答案的组合为我工作:
$('.chosen-select option').prop('selected', false).trigger('chosen:updated');
这将取消选择所有选项,同时向下重置所选下降。
http://jsfiddle.net/donkeysauras/j9yuL/ < -工作示例
这为我工作:
$('form#form_id').find('select').each(function(i, element) {
$(element).chosen('destroy');
$(element).prop("selectedIndex", -1);
$(element).chosen();
});
从文档
更新获选动态
如果你需要在你的选择字段更新选项,并要选择拿起变化,你需要触发“选择:更新”在球场上的事件。 基于更新后的内容的选择将重新建立本身。
$("#form_field").trigger("chosen:updated");
在我的情况下,它是
jQuery("#my-select-box").trigger("chosen:updated");
my-select-box
的选择框的ID。
您可以重置multiple select
使用jQuery
如下
$('.chzn-select option').prop('selected', false);
凡class name
的选择是chzn-select
。
这里的工作示例 。
对于谁可能已经结束了在这个问题上(有多个,他们需要进行组合),所选择已更新了他们的语法 - 用这个来代替:
$('.chzn-select').val('').trigger('chosen');
其中, '.chzn-select'
为可以切换出'select'
, '#yourSelect'
或您希望使用的选择的任何其他方法。
查看:
- 如何重置用jQuery一个jQuery挑选的选择的选择吗?
- http://harvesthq.github.io/chosen/#change-update-events
这工作正常,我
$('.reset-btn').click(function(){
var form = $(this).closest('form').get(0);
form.reset();
$('.chosen-select').trigger('chosen:updated');
});
基本上我迫使形式复位和更新复位后选择的。 :d
It all depends on your chosen settings. It worked for me:
$('.chzn-select-no-search').val('').trigger('liszt:updated');
该解决方案为我工作
$('#.chosen-select').val('').prop('selected', false).trigger('chosen:updated')
只有这可能是工作:
$('#client_filter').html(' '); //this worked
不工作:
$('#client_filter').val('').trigger('change') ; //not working
$('#client_filter').val('').trigger('chosen:updated') ; //not working
$('#client_filter').val('').trigger('liszt:updated') ; //not working