2011-07-17 16 views
12

Czy mogę mieć przycisk obok formularza, ale nie mam type=submit?button_to bez przesłania

Robię coś specjalnego. Mam formularz,

i ten formularz zostanie wyrenderowany na podstawie wartości w sesji.

Po stronie formularza mam już f.submit i chcę mieć inny przycisk, przycisk anulowania, aby wywołać metodę z kontrolera, aby zmienić wartość sesji, jeśli użytkownik chce anulować wprowadzanie.

Ale jeśli użyję button_to, typ przycisku zostanie "prześlij", po kliknięciu przycisku, prześle cały formularz. Jeśli część wartości nie jest ważna, złoży skargę. Nie działa jako przycisk "anuluj", którego się spodziewałem.

Czy mogę mieć przycisk, który nie przesyła formularza?

Próbowałem użyć submit_tag, ale praca dosn`t buttom dla mnie ...

<%= submit_tag 'Cancel Edit', :type => 'button', :controller => 'my_account', :action=>'cancel_edit' %> 

Odpowiedz

12

button_to helper faktycznie generuje całą postać:

generuje formularz zawierający jeden przycisk który przesyła do adresu URL utworzonego przez zestaw options.

To zdecydowanie nie jest to, czego chcesz. Myślę, że po prostu chcesz wygenerować prosty element <input type="button"> w kodzie HTML. Jednak nie ma button_tag w FormTagHelper ale jest submit_tag, które można przekazać do :type opcję i że będzie:

Każdy inny klucz tworzy standardowe opcje HTML dla znacznika.

Więc spróbuj tego:

submit_tag 'Pancakes', :type => 'button' 

gdzie "Naleśniki" byłby to prawdziwy etykieta.

+0

thx za odpowiedzi ... pozwól mi spróbować. ... – jojo

+0

Ale jak mogę invoeke akcja z tagu submit? czy muszę używać javascript ??? – jojo

+0

@ shrimpy: Hook some JavaScript. –

20

Spróbuj wykonać następujące czynności:

<%= button_tag "Cancel", :type => 'button', :class => "subBtn", :onclick => "location.href = '#{list_admin_users_admin_index_path()}'" %> 
+1

pracował dla mnie, thnx. –

0

Można użyć pomocnika podobną do f.submit:

<%= f.button 'Save' %>

Documentation

Powiązane problemy