RJS: получить значение поля text_ - PullRequest
1 голос
/ 03 апреля 2012

Я использую Rails 2.3, и я не знаю, как получить значение text_field формы, чтобы обработать его в файле rjs.Я искал в Интернете весь день и не нашел решения.

Вот мой код, чтобы быть более точным:

В моем файле form.erb:

<%= observe_field 'issue_'+@issue.id.to_s+'_estimated_hours',
  :url=>{:action => 'check_estimated_hours_field'},
  :with => "'number=' + escape(value) + 
        '&fields_estimated_ids=#{@fields_estimated_ids}'" 
%>

Контроллер:

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

Как мне решить проблему, с которой я сталкиваюсь в комментарии в check_estimated_hours_field.rjs?

1 Ответ

1 голос
/ 13 апреля 2012

После нескольких тестов и исследований, по-видимому, невозможно восстановить значение поля формы с помощью RJS. Решение, которое я нашел, состоит в том, чтобы создать строку, содержащую все значения полей в наблюдаемом поле, и проанализировать эту строку в RJS для получения значений, подобных этому:

В моем файле 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 + '_';
    }) + "
%>

В контроллере:

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

Таким образом, я могу добавить все значения и получить их в переменной @ total_estimated_hours

...