如何调用操作,将值传递给js中的操作并在rails 3中的页面上重新渲染j?

时间:2011-06-18 14:22:35

标签: javascript ruby-on-rails ruby

我有一个页面poweroutput.html.erb,其控制器操作如下:

def poweroutput

   # other stuff here...

   if (request.xhr?)
     @date = :date
     respond_to do |format|
        format.html
     end
   else
      @date = Time.now.getlocal.strftime("%d.%m.%Y")
   end

end

else子句在加载页面时执行正常。我希望在我的poweroutput.html.erb中更改文本字段元素时执行if子句,如下所示:

<%= text_field_tag(
          'dt', nil,
          {  :id => 'date-field',
             :class => 'dateformat-d-dt-m-dt-Y',
             :value => Time.now.getlocal.strftime("%d.%m.%Y"), 
             :onchange => remote_function(
                 :url => {:controller => 'pages', :action => 'poweroutput'}, :with => "'date=' + $('date-field').value"),

          })
%>

所以我想在文本字段的更改上发生的是:(1)控制器动作,poweroutput,要调用,(2)将此文本字段的内容分配给控制器中的@date实例变量动作和(3)javascript(位于poweroutput.html.erb中的脚本标签内)要重新渲染(即使是正确的单词重新渲染?)。我甚至不确定我是在正确的道路上。请告诉我是否有更好的方法来做到这一点。您在上面看到的非功能性代码只是两天谷歌搜索的产物。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

正如我在remote_function中注意到的那样,您没有指定要替换的元素。

更多信息在这里http://apidock.com/rails/ActionView/Helpers/PrototypeHelper/remote_function