首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RJS替换Div

使用RJS替换Div
EN

Stack Overflow用户
提问于 2009-06-04 14:05:18
回答 4查看 2.4K关注 0票数 2

我目前有一个链接,点击时会调用JavaScript函数,该函数收集一些数据,然后使用ProtoType提交表单……

代码语言:javascript
复制
function myFunction(){
  data = someobject.getData();
  $('myform').request({
    parameters: {data:data, id:id,},
    onSuccess: function(transport) { 
      document.location.reload();        
    }
  });  
}
...
<%= form_tag({:controller => "data", :action => "process"}, :id => "myform") %></form>

请注意我在onSuccess回调中使用的非常unAJAXy的document.location.reload();。

我想让DataController#process来做这件事。

代码语言:javascript
复制
def process
  ...
  render :update do |page|
    page.replace 'my_div', :partial => 'test'
  end
end

有没有人可以指导我,为了让page.replace正常工作,我需要在调用JavaScript中进行哪些更改?当然,现在它只是被忽略了。

我已经尝试了各种方法,并四处阅读,但在这种情况下,我没有得到我需要做的事情。

谢谢

EN

回答 4

Stack Overflow用户

发布于 2009-06-04 14:18:50

将渲染从控制器中取出,并将其放入views/datas/process.js.rjs中

代码语言:javascript
复制
page.replace("my_div", :partial => "test")
票数 2
EN

Stack Overflow用户

发布于 2009-06-04 14:17:37

我不确定您希望它如何工作,但有一个remote_form_for标记将为您完成请求。此外,您可能希望查看以下链接,以获取有关使用RJS模板的示例:

http://www.developer.com/lang/article.php/3668331

票数 0
EN

Stack Overflow用户

发布于 2009-06-04 14:23:54

您可以将您的form_for更改为:

代码语言:javascript
复制
<% form_remote_tag :url => {:controller => "data", :action => "process"},
                   :html => {:id => 'my_form'},
                   :update => 'my_form' do %>

然后在控制器中渲染部分,它会用它来更新'my_form‘:

代码语言:javascript
复制
def process
  ...
  render partial => 'test'
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/950796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档