我目前有一个链接,点击时会调用JavaScript函数,该函数收集一些数据,然后使用ProtoType提交表单……
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来做这件事。
def process
...
render :update do |page|
page.replace 'my_div', :partial => 'test'
end
end有没有人可以指导我,为了让page.replace正常工作,我需要在调用JavaScript中进行哪些更改?当然,现在它只是被忽略了。
我已经尝试了各种方法,并四处阅读,但在这种情况下,我没有得到我需要做的事情。
谢谢
发布于 2009-06-04 14:18:50
将渲染从控制器中取出,并将其放入views/datas/process.js.rjs中
page.replace("my_div", :partial => "test")发布于 2009-06-04 14:17:37
我不确定您希望它如何工作,但有一个remote_form_for标记将为您完成请求。此外,您可能希望查看以下链接,以获取有关使用RJS模板的示例:
http://www.developer.com/lang/article.php/3668331
发布于 2009-06-04 14:23:54
您可以将您的form_for更改为:
<% form_remote_tag :url => {:controller => "data", :action => "process"},
:html => {:id => 'my_form'},
:update => 'my_form' do %>然后在控制器中渲染部分,它会用它来更新'my_form‘:
def process
...
render partial => 'test'
endhttps://stackoverflow.com/questions/950796
复制相似问题