如何调用一个操作,从js向该操作传递一个值,并在rails3中的页面上重新呈现js

How can I call an action, pass a value to the action from js and re-render the js on a page in rails 3?

本文关键字:js 操作 一个 rails3 并在 新呈现 调用 何调用      更新时间:2023-09-26

我有一个页面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中的脚本标记中)(即使是正确的单词也要重新渲染?)。我甚至不确定我在这里走的是正确的道路。请告诉我是否有更好的方法。您在上面看到的非功能代码只是两天谷歌搜索的结果。如有任何帮助,我们将不胜感激。

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

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