我有一个带有多个选择字段的表单,使用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重置输入字段(表单已提交并远程重置),我似乎无法弄清楚如何删除所选元素//清除输入字段。问题在于选择了更改输入字段,因此它不是简单的文本区域。
有人能指出我正确的方向吗?
答案 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)
动态更新动态
如果您需要更新选择字段中的选项并希望选择选择更改,则您需要触发选择的选项:已更新"在球场上的事件。 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 name
为chzn-select
。
答案 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');