2012-04-03 4 views
1

J'utilise Rails 2.3 et je ne sais pas comment récupérer la valeur d'un champ text_field d'un formulaire pour le manipuler dans le fichier rjs. J'ai cherché sur Internet toute la journée et je n'ai pas trouvé de solution.RJS: Récupère la valeur d'un champ texte

Voici mon code pour être plus précis:

Dans mon fichier form.erb:

<%= observe_field 'issue_'[email protected]_s+'_estimated_hours', 
    :url=>{:action => 'check_estimated_hours_field'}, 
    :with => "'number=' + escape(value) + 
     '&fields_estimated_ids=#{@fields_estimated_ids}'" 
%> 

Controller:

def check_estimated_hours_field 
    @fields_estimated_ids = params[:fields_estimated_ids] 
end 

check_estimated_hours_field.rjs:

for @field_id in @fields_estimated_ids 
    # here I want to add all the values of fields and retrieve the result in a ruby variable 
end 

Comment puis-je résoudre le problème rencontré dans le commentaire dans check_estimated_hours_field.rjs?

Répondre

1

Après plusieurs tests et recherches, il est apparemment impossible de récupérer la valeur d'un champ de formulaire avec RJS. La solution que je trouve est de créer une chaîne contenant toutes les valeurs de champs dans la observe_field et analyser cette chaîne à la RJS pour récupérer les valeurs comme ceci:

Dans mon fichier form.erb:

<% = observe_field 'issue_' + @issue.id.to_s +'_estimated_hours' 
    : url => {: action => 'check_estimated_hours_field'}, 
    : with => "'number =' + escape (value) + 
    '& fields_estimated_values ​​=' + $ ('my_form'). select ('[class ~ = estimated_hours]'). collect (function (n) { 
     return n.value + '_'; 
    }) + " 
%> 

dans le contrôleur:

def check_estimated_hours_field 
    estimated_hours_values ​​= params [:estimated_hours_values​​].split('_') 
    @total_estimated_hours = 0 
    estimated_hours_values.each {| value | 
    @total_estimated_hours += hours.to_f 
    } 
end 

de cette façon, je peux ajouter toutes les valeurs et les récupérer dans les @total_estimated_hours variables

Questions connexes