2009-12-28 3 views
2

J'ai un peu de mal à trouver comment désactiver le bouton de soumission dans les rails lorsqu'un formulaire est soumis. Il fonctionne correctement avec javascript disabled et le symbole ': disable_with' dans la fonction 'remote_form_for # submit' mais ne peut pas le comprendre lors de la soumission via ajax. Des pensées? Utilisation des rails 2.3.5 et rubis 1.8.7.Rails Ajax Form Disable Envoyer le bouton

+0

Il est clair pas ce que vous avez l'intention de le faire avec le bouton soumettre tout en soumettant par ajax. Avez-vous l'intention de désactiver le bouton d'envoi jusqu'à ce que la demande revienne? Il serait utile de suggérer une solution, si vous pouviez nous dire exactement ce que vous avez l'intention de réaliser en désactivant la soumission. – Priyank

+0

Oui, je voudrais désactiver le bouton de soumission lorsque l'utilisateur soumet le formulaire et le réactiver lorsque la requête ajax est terminée. J'essaie de faire en sorte que l'utilisateur ne puisse pas soumettre le formulaire deux fois pour la même soumission (et je ne veux pas utiliser de validations pour vérifier l'unicité puisque les valeurs en double sont autorisées dans la base de données). – thomas

Répondre

6

Vous pouvez masquer le bouton Envoyer lorsque la demande est effectuée et afficher une image de chargement pendant l'exécution de la demande. Par exemple, dans un form_remote_tag:

<% form_remote_tag :url => "/some_url", 
:loading => "$('submit_span').toggle(); $('loading_span').toggle();", 
:complete => "$('submit_span').toggle(); $('loading_span').toggle();" do %> 

-- FORM CONTENTS -- 

    <span id="submit_span"> 
    <%= submit_tag "Submit" %> 
    </span> 
    <span id = "loading_span" style = "display: none;"> 
    <%= image_tag("loading.gif")%> 
    </span> 
<% end %> 

Lorsque la demande complète (succès ou échec) vous unhide la soumettre et masquer la durée de chargement.

Plus docs sur les différents callbacks:

http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html#M002174