2012-07-30 20 views
2

在Javascript创建资源之后,如何重置Chosen plugin字段?如何在创建资源后重置我选择的选择菜单?

我创建了一个狗,可以使用所选插件不是选择菜单拿到常规表单字段复位,而是:

狗/ create.js.erb

$('#dogs').prepend('<%= escape_javascript(render(@dog)) %>'); 
$('.add-dog-form > form')[0].reset(); 

这是成功的复位,只是不能与它从我的application.js称为选择菜单:

jQuery(function($) { 
    // Chosen Select Menu 
    $('.category-select').chosen().trigger("liszt:updated"); 
}); 

比我的形式:

<%= form_for(@dog, :remote => true) do |f| %> 
    <%= f.label :name, "Name" %> 
    <%= f.text_field :name %> 
    <%= f.label :category, "Categories" %> 
    <%= f.select :category_ids, Category.all.collect {|c| [c.name, c.id]}, {}, { :multiple => true, :class => "category-select" } %> 
<% end %> 

所以,再一次,一个人如何重置Chosen plugin场是由创建的Javascript资源之后?

回答

2

试试这个:

狗/ create.js.erb

$('#dogs').prepend('<%= escape_javascript(render(@dog)) %>'); 
$('.add-dog-form > form')[0].reset(); 
$('.category-select').chosen().trigger("liszt:updated"); 

基本上,你必须再次触发内部create.js.erb复位。

+0

谢谢,非常简单的解决方案! – LearningRoR 2012-07-30 03:52:17

+0

很高兴帮助:) – ddb 2012-07-30 04:06:04

相关问题