Comment désactiver tous les champs d'entrée de form_for dans l'application Ruby on Rails?
Je suis en train de SÉCHER mon application Rails un peu, donc, je tiens à rendre un formulaire dans mon show
point de vue, mais désactiver tous les champs de saisie.
// show.html.erb
<%= form_for(@project) do |f| %>
<%= render 'fields', :f => f %>
<% end %>
Quelle serait la meilleure façon de le faire?
Merci pour toute aide.
source d'informationauteur Tintin81
Vous devez vous connecter pour publier un commentaire.
Javascript
Un autre moyen serait de le faire en utilisant JS. Inclure un
div
avec une classe spécifique dans le show view :Ensuite dans votre fichier JS :
Rails
Si vous voulez réellement générer ce côté serveur, vous pouvez passer une variable à vos partielle qui dira le partiel si c'est pour ajouter l'option désactivée sur chaque champ. C'est un peu plus de travail, même si!
À l'aide d'une variable, vous pourriez faire quelque chose comme ceci :
Dans le partiel :
Générateur de formulaire
Edit : en fait, une façon d'éviter explicitement en passant
disabled
partout serait de créer unCustom form builder
. Il y a quelques bonnes ressources en parler, comme celui-ci : http://johnford.is/writing-a-custom-formbuilder-in-rails/Dans cet exemple, c'est fait pour
onkeypress
ne devrait pas être difficile à adapter à votre cas!Vous pouvez envelopper tous les champs dans
<fieldset disabled>
Vous pouvez utiliser des feuilles de style pour cette chose.
Le spectacle d'action dans le contrôleur de dire 'Projet', donc vous pourriez avoir un fichier de feuilles de style avec le nom de votre contrôleur.
Maintenant joignez à votre formulaire dans le show.html.erb dans un div, et de donner un id unique ,dire "disable_input', que vous ne serez pas donner à tout élément dans la page.
Maintenant désactiver la saisie de tous les champs dans vous css en vertu de cette div. Vous pouvez l'écrire comme ça..
disable_input input{
# tout ce que vous voulez
}
Donc pas besoin de code.