2008-10-21 8 views
17

Czy istnieje prosty sposób, aby pomocnicy formularza ustawiali parametr tabindex automatycznie podczas korzystania z helperów formularzy w Railsach?Automatyczna metoda ustawiania tabindex za pomocą helperów formularzy

Zasadniczo nie chcę ręcznie ustawiać indeksu kart na każdym elemencie formularza podczas budowania formularzy (ciągle zapominam, aby je aktualizować po zmianie). Większość formularzy, które piszę, to po prostu lista pól. Indeks tabulacji powinien być w kolejności, w jakiej są zdefiniowane. Najlepiej byłoby ustawić początkowy indeks w wywołaniu form_for i wszystko inne będzie obsługiwane dla mnie.

Czy ktoś wie, jak to zrobić?

Odpowiedz

31

I zazwyczaj dodać metodę tak aby ApplicationHelper

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

potem w moich poglądów mogę wykonywać połączenia do pomocnika z :tabindex => autotab tak:

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

Można również modyfikować wszystkie text_field , check_box, metody pojedynczo, aby dodać tabindex automatycznie, dodając coś takiego do pomocnika aplikacji: (nietestowane, ale masz rację)

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 

To może być więcej kłopotów niż to warte

+0

mam użyć zmiennej lokalnej zamiast zmiennej instancji to proszę mi wyjaśnić, dlaczego jej nie działa, jeśli biorę CURRENT_TAB zamiast @current_tab – railslearner

Powiązane problemy