2010-07-19 2 views
4

J'ai un formulaire Rails qui a un observ_field qui effectue une requête ajax lorsqu'une liste déroulante est modifiée. L'ajax provoque le rendu du formulaire (le formulaire est partiel) avec un paramètre supplémentaire qui fait que du texte sur la page change. Tout cela fonctionne très bien, mais quand je rafraîchis la page (je cours firefox), le texte est réinitialisé et la liste déroulante ne change pas sa valeur. Ainsi, je me retrouve avec une valeur de sélection qui ne correspond pas au texte dynamique.Rails: Réinitialisation des champs de formulaire avec rafraîchissement de la page

J'ai essayé de définir une valeur par défaut sélectionnée pour la liste déroulante, mais pour une raison quelconque, firefox ne changera pas la valeur avec un rafraîchissement de page.

C'est le code pour le menu déroulant de la vue:

<%= select_tag :category, options_from_collection_for_select(@categories, :letter, :name, @letter) %>

@letter est réglé dynamiquement et contrôle le texte dynamique sur la page.

C'est l'action qui est rendu sur une page rafraichissement

def new

@part = Part.new 
@letter = params[:letter] || "A" 
@part.cpn = Part.find_next_cpn(@letter) 
@categories = PartCategory.find(:all) 
respond_to do |format| 
    format.js 
    format.html 
end 

end

je besoin d'un moyen soit de conserver les informations de texte dynamique ou réinitialiser le menu déroulant.

Répondre

5

Vous devez désactiver l'option 'autocomplete' - cela indique au navigateur que vous ne voulez pas que le champ soit complété automatiquement.

Un exemple est ici: http://mspeight.blogspot.com/2007/06/disable-browsers-autocomplete-on-rails.html

Vous pouvez également faire la même chose, mais juste pour désactiver le remplissage automatique des champs spécifiques. En d'autres termes, le formulaire n'est pas actualisé, car le navigateur essaie d'être utile en insérant les dernières données utilisées par le client. Vous devez dire au navigateur d'arrêter d'essayer d'être utile. Vous fournissez déjà les bonnes données.

+0

Travaillé comme un charme. :) – Audie

+0

Heureux d'être d'usage :) – jasonpgignac

+0

merci pour cela – NateQ

Questions connexes