2017-03-09 2 views
0

Existe-t-il un moyen possible d'exécuter l'action du contrôleur avec la forme de confirmation avant elle?Exécuter l'action du contrôleur avec la forme de confirmation dans RoR avec haml

Je voudrais demander à l'utilisateur est-il/elle vraiment sûr de faire l'action suivante. Et après confirmation exécuter cette action. Dans d'autres cas, ne faites rien.

J'ai déjà essayé ce code:

= form_tag('#', onclick: "confirm('#{text}')", :controller => :payments, :action => :pay, :subscription_id => subscription_plan) do 
    = hidden_field_tag 'current_subscription', subscription_plan.id 
    .payment_button= image_submit_tag "/images/popup/payment/#{label_img}", :value => label.to_s, data: { disable_with: "Please wait..." } 

Et je suis intéressant est-il possible de le faire sans JavaScript?

Répondre

1

Oui il y a moyen

.payment_button= image_submit_tag "/images/popup/payment/#{label_img}", :value => label.to_s, data: { confirm: 'Your confirm message', disable_with: "Please wait..." } 

ou d'une autre manière est

= form_tag('#', onsubmit => "return confirm('Are you sure?');", :controller => :payments, :action => :pay, :subscription_id => subscription_plan) do 
+0

En fait, cela aussi ne fonctionnera pas sans JavaScript activé et la bibliothèque jQueryUjs inclus. Ce n'est qu'une abstraction de Rails qui ajoute cette fonctionnalité JavaScript pour vous. Donc, techniquement, ce n'est pas une "solution non JavaScript". – gerrit