2008-10-21 3 views
17

Existe-t-il un moyen facile pour les assistants de formulaire de définir automatiquement le paramètre tabindex lors de l'utilisation d'aides de formulaire dans Rails? Fondamentalement, je ne veux pas avoir à définir manuellement l'index de tabulation sur chaque élément de formulaire lors de la construction des formulaires (je oublie de les mettre à jour quand je change les choses). La majorité des formes que j'écris sont essentiellement une liste de champs. L'index de tabulation doit être dans l'ordre dans lequel ils sont définis. Idéalement, je définirais l'index initial dans l'appel form_for et tout le reste serait géré pour moi.Méthode automatique pour définir le tabindex à l'aide des aides de formulaire

Est-ce que quelqu'un sait comment faire cela?

Répondre

31

Je l'habitude d'ajouter une méthode comme celui-ci à ApplicationHelper

def autotab 
    @current_tab ||= 0 
    @current_tab += 1 
end 

Puis, dans mon point de vue que je fais des appels à l'aide d'une :tabindex => autotab comme ceci:

<%= text_field "post", "login",:tabindex => autotab, :value => @login %> 

Vous pouvez également modifier tous les text_field , check_box, les méthodes une à la fois pour ajouter le tabindex automatiquement, en ajoutant quelque chose comme ça à votre assistant d'application: (non testé, mais vous obtenez le point)

def text_field_with_tabindex(*args) 
    options = args.last 
    options[:tabindex] = autotab if options.is_a?(Hash) && options[:tabindex].nil? 

    text_field_without_tabindex(*args) 
end 

def self.included(base) 
    base.class_eval do 
    alias_method_chain :text_field, :tabindex 
    end 
end 

qui pourrait être plus d'ennuis que cela vaut la peine

+0

j'utiliser la variable locale au lieu de variable d'instance vous me s'il vous plaît expliquer pourquoi sa ne fonctionne pas si je prends CURRENT_TAB au lieu de @current_tab – railslearner

Questions connexes