我想在表单提交后刷新div内容

时间:2011-05-14 04:29:05

标签: javascript ruby-on-rails

所以,我正在使用带有回形针宝石的:remote => true表单来上传照片。当我提交表单时,我只想刷新div的内容(现在将包含上传的照片)。

然而,Rails坚持将我重定向到用于处理照片提交的动作的路径。此外,还有实际刷新div的问题。

我想用javascript做,但没有afterSubmit处理程序或任何东西。我无法弄清楚如何使用javascript响应表单提交。我试着做

def add_photo
  SomeModel.method_that_processes_and_saves(params)
  respond_to do |format|
    format.js 
  end
end

并将脚本放在add_photo.js.erb中。但是,脚本永远不会被发送(浏览器要求输入html?)我怎样才能解决这个问题?现在整整一天让我感到沮丧。

2 个答案:

答案 0 :(得分:0)

没有“afterSubmit”的概念,因为页面已被表单提交替换。解决此问题的最简单方法是在后续页面上处理照片上传。 Ruby应该给你路径。 另一种方法是使用众多上传库中的一个来异步上传并为您提供“完整”回调。 http://www.uploadify.com/是一个受欢迎的选择。

答案 1 :(得分:0)

def add_photo
  SomeModel.method_that_processes_and_saves(params)
  respond_to do |format|
    format.js{ render :update do |page|
      page << "$('#mydiv').html('bah-blah') "
  end
end

或创建add_photo.js.erb并在那里写下您想要的任何JavaScript。

如果您通过AJAX(js请求)提交表单,那将会有效,这意味着您应该添加:remote => true选项

相关问题