2012-08-04 43 views
1

我有模型DogCategory与他们的形式在同一页上。我正在使用Chosen Plugin,当我添加一个类别时,它不会更新狗形式的类别选择。两者都是远程表单并创建相同的方式,使所述new.js.erb和create.js.erb基本上是相同的:为什么选择的插件没有更新?

宠物/ index.html.erb

<div class="tabbable"> 
    <ul class="nav nav-tabs"> 
     <li class="active"> 
     <a href="#tab1" data-toggle="tab">Dog</a> 
     </li> 
    </ul> 
    <ul class="nav nav-tabs"> 
     <li class="active"> 
     <a href="#tab2" data-toggle="tab">Category</a> 
     </li> 
    </ul> 
    <div class="tab-content"> 
     <div class="tab-pane active add-dog-form" id="tab1"> 
     <%= render "dogs/form" %> 
     </div> 
    </div> 
    <div class="tab-content"> 
     <div class="tab-pane active add-category-form" id="tab2"> 
     <%= render "categories/form" %> 
     </div> 
    </div> 
</div> 

狗/ new.js.erb

$('.add-dog-form').html('<%= escape_javascript(render(:partial => 'dogs/form', locals: { dog: @dog })) %>'); 

狗/ create.js.erb

$('.add-dog-form').html('<%= escape_javascript(render(:partial => 'dogs/form', locals: { dog: @dog })) %>'); 

狗/ _form.html.erb

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

的application.js

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

任何人工作,这个插件和/或不知道如何更新选择菜单?

回答

3

application.js 相反的:

$('.category-select').chosen().trigger("liszt:updated"); 

用途:

$('.category-select').trigger("liszt:updated"); 
+0

的'chosen'插件,如果我这样做不会被触发。 – LearningRoR 2012-08-04 14:21:56

+0

是的,检查您的文档链接标题下的“更新动态选择”的解释。 – 2012-08-04 14:37:36

+0

奇怪的是,我可以触发'.chosen'并获取插件,但是当我使用'.trigger'时,它会返回到常规选择菜单。为了以防万一,我尝试重新安装并将文件从供应商文件夹移至资产。尽管如此,仍然没有运气。 – LearningRoR 2012-08-04 15:23:00