2017-10-20 5 views
0

J'ai une application Rails 5 utilisant seulement AngularJS, pas de jQuery/Turbolinks. Les boutons de soumission typiques générés par helper de formulaire ne fonctionnent pas dans cette application (passez immédiatement à désactivé) sans soumettre le formulaire, et j'ai eu recours à l'utilisation de button_tags avec type = "Submit" à la place.Rails Submit Boutons Ne fonctionne pas (name = "commit")

Si je supprime l'attribut "name = 'commit" "du bouton submit, cela fonctionne comme prévu en soumettant le formulaire. Je me demande s'il y a quelque chose lié à cet attribut que je ne vois pas. Voici un exemple de formulaire.

<%= form_for(role) do |f| %> 

    <div class="field"> 
    <%= f.label :name %> 
    <%= f.text_field :name %> 
    </div> 

    <div class="actions"> 
    <%= f.submit %>   <!-- this fails --> 
    <input type="submit" /> <!-- this works --> 
    </div> 
<% end %> 

avant le clic, le bouton html ressemble à ceci:

<input type="submit" name="commit" value="Update Role" data-disable-with="Update Role"> 

Après avoir cliqué, le bouton ressemble à ceci:

<input type="submit" name="commit" value="Update Role" data-disable-with="Update Role" disabled="disabled" class="disabled"> 

Il est comme si Chrome pense que la forme a été soumis, mais quelque chose a bloqué cela.

+0

Comme une mise à jour à cela, je suis allé à débugger Firefox, et le buton d'assistance de forme fonctionne comme prévu. Peut-être que j'ai une extension Chrome qui est un obstacle. – Csizzle

Répondre

0

Documentation: Link

<div class="actions"> 
    <%= f.submit "Commit", name: "commit" %> 
    #or 
    <input type="submit" name="Commit" /> 
    </div> 
+0

Ces deux configurations ne parviennent pas à soumettre le formulaire. Seule la suppression de l'attribut name = "commit" s'est avérée efficace lors des tests. – Csizzle

+0

@Csizzle avez-vous des lignes js qui appartiennent au formulaire. Cuz, smth manquant dans la publication – 7urkm3n

+0

Il ne devrait pas y avoir de JS associé au formulaire, car il s'agit d'une forme simple générée à partir d'un échafaudage. Y a-t-il une raison de penser que quelque chose pourrait manquer? – Csizzle

0

Comme le suggère documentation, cela est parfaitement bien.

<%= form_for @post do |f| %> 
    <%= f.submit %> 
<% end %> 

Rails form_for transformeront f.submit au bouton soumettre respectivement avec le type de soumettre. Essayez de redémarrer le serveur une fois et vérifiez si le problème persiste.

Une chose additionnelle est que n'importe quel bouton avec le type submit dans le formulaire de rails sera pris comme bouton de soumission de formulaire.

+0

Le redémarrage du serveur a échoué. La solution de contournement que j'ai utilisée consiste à convertir les balises en balises