2011-07-17 24 views
12

¿Puedo tener un botón al lado del formulario, pero no tengo el type=submit?button_to without submit

Estoy haciendo algo especial. Tengo un formulario,

<%= form_for(@user) do |f| %> 

y esta forma se representará sobre la base de un valor en una sesión.

En lado la forma, tengo f.submit ya y quiero tener otro botón, botón de cancelación, para invocar un método de controlador para cambiar el valor de sesión de usuario si desea cancelar la entrada.

Pero si uso button_to, el tipo del botón será "enviar", cuando haga clic en el botón, enviará el formulario completo. Si parte del valor no es válido, se quejará. No funciona como el botón "cancelar" que esperaba.

¿Puedo tener un botón que no envía el formulario?

He intentado utilizar submit_tag, pero el broche en el trabajo dosn`t para mí ...

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

Respuesta

12

El button_to helper realmente genera toda una forma:

Genera un formulario que contiene un solo botón que se envía a la URL creada por el conjunto de options.

Así que definitivamente no es lo que quieres. Creo que solo desea generar un elemento simple <input type="button"> en su HTML. Sin embargo, no hay button_tag en FormTagHelper pero hay una submit_tag que puede entregar una opción :type a voluntad y que:

Cualquier otra tecla crea opciones estándar de HTML para la etiqueta.

Así que trate esto:

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

donde "tortitas" sería su sello real.

+0

Thx por la respuesta ... te voy a dar una oportunidad. ... – jojo

+0

Pero, ¿cómo puedo invoeke action from submit tag ??? ¿Necesito usar javascript ??? – jojo

+0

@shrimpy: Enganche JavaScript. –

20

intente lo siguiente:

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

funcionó para mí, por ejemplo. –

0

Usted puede utilizar ayudante similar a f.submit:

<%= f.button 'Save' %>

Documentation