2012-07-30 5 views
2

Comment réinitialiser un champ Chosen plugin après que la ressource a été créée par Javascript?Comment réinitialiser mon menu de sélection choisi après avoir créé une ressource?

créer un chien et peut obtenir les champs de formulaire réguliers pour réinitialiser mais pas le menu de sélection à l'aide du plug-in choisi:

chiens/create.js.erb

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

Ce succès est remise à zéro, mais pas avec le menu choisi qui est appelé de mes application.js:

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

que ma forme:

<%= 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 %> 

Encore une fois, comment peut-on réinitialiser un champ après Chosen plugin ressource est créée par Javascript?

Répondre

2

Essayez ceci:

chiens/create.js.erb

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

Vous avez essentiellement pour déclencher la remise à zéro à nouveau à l'intérieur create.js.erb.

+0

Merci, solution très facile! – LearningRoR

+0

Content que cela ait aidé :) – ddb

Questions connexes