RJS:检索text_field的值

时间:2012-04-03 15:03:18

标签: javascript ruby-on-rails forms rjs ruby-on-rails-2

我正在使用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 个答案:

答案 0 :(得分:1)

经过多次测试和研究后,显然无法使用RJS恢复表单字段的值。 我找到的解决方案是创建一个包含observe_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_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中检索它们