Je souhaite créer un formulaire pour effectuer une réservation pour des articles empruntés. Une réservation comprend l'heure de ramassage, l'heure de retour et les articles que le détenteur souhaite emprunter et leurs montants. Par exemple, je pourrais vouloir réserver trois assiettes, trois couteaux et trois fourchettes pour le reste de la semaine.Rails: comment obtenir la valeur d'un autre champ lors de l'exécution d'une fonction onchange remote dans le champ de texte
Dans le formulaire, je veux faire une validation AJAX qui vérifie s'il y a suffisamment d'éléments disponibles. À côté de chaque élément, j'ai une zone de texte avec laquelle le reserver saisit le montant de l'article. Après l'entrée, je veux faire un appel onchange qui vérifie si le nombre d'éléments est disponible pour les dates données. Ainsi, j'ai besoin de passer la fonction distante appelée dans l'onchange paramètres suivants: identifiant de l'article, montant de l'article (valeur du champ de texte courant) et le temps de ramassage et de retour qui sont tous deux donnés dans les champs datetime_select ci-dessus. Ceci est mon code:
<% with = "'amount='+value+'&item=#{item.id.to_s}&pick_up_time=#{@reservation.pick_up_time.to_s}&return_time=#{@reservation.return_time.to_s}'" %>
<%= text_field_tag "reservation[#{prefix}reserved_items][#{item.id}]", get_amount_value(item, @reservation), :size => 3, :onchange => "#{remote_function(:url => { :controller => :items, :action => :availability }, :with => with, :update => availability_url) }" %>
De toute évidence, cela ne fonctionne pas depuis @ reservation.return_time et @ reservation.pick_up_time ne sont pas encore mis parce que la forme n'a pas encore été envoyé. Ma question est: comment puis-je obtenir ces valeurs? Je crois que cela devrait être fait via un appel javascript, mais je n'ai pas réussi à insérer un appel javascript dans la variable "avec" ou du moins ne l'ai pas fait fonctionner. Est-ce que quelqu'un a une idée de ce que je devrais faire?
si le serveur est en train de faire la validation pourquoi pas seulement passez le formulaire au serveur normalement et déterminez l'erreur là. Puisque le serveur est impliqué de toute façon ... – ErsatzRyan