繁体   English   中英

如何调用动作,从js传递值到该动作并在Rails 3的页面上重新呈现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?

我有一个页面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子句在加载页面时执行良好。 我期望if子句在我的poweroutput.html.erb中的文本字段元素更改时执行,如下所示:

<%= 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)调用控制器动作,电源输出,(2)将此文本字段的内容分配给控制器动作中的@date实例变量,并且( 3)重新渲染javascript(位于poweroutput.html.erb的脚本标签内)(甚至正确的单词也被渲染?)。 我什至不确定自己在这里的路是否正确。 请告诉我是否有更好的方法可以做到这一点。 您在上面看到的非功能性代码只是两天Google搜索的结果。 任何帮助将不胜感激。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM