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

Javascript 我想在表单提交后刷新div内容,javascript,ruby-on-rails,Javascript,Ruby On Rails,所以,我使用:remote=>true表单和回形针gem来上传照片。当我提交表单时,我只想刷新一个div的内容,这个div现在将包含上传的照片 然而,Rails坚持将我重定向到用于处理照片提交的操作路径。此外,还存在实际刷新div的问题 我想用javascript来做,但是没有后提交处理程序或其他东西。我也不知道如何用javascript响应表单提交。我试着去做 def add_photo SomeModel.method_that_processes_and_saves(params)

所以,我使用:remote=>true表单和回形针gem来上传照片。当我提交表单时,我只想刷新一个div的内容,这个div现在将包含上传的照片

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

我想用javascript来做,但是没有后提交处理程序或其他东西。我也不知道如何用javascript响应表单提交。我试着去做

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

并将脚本放置在add_photo.js.erb中。但是,如果浏览器要求html,脚本永远不会发送?我怎样才能避开这个??这让我沮丧了一整天

没有后提交的概念,因为页面已被表单提交所取代。解决这个问题的最简单方法是在后续页面上处理照片上传。Ruby应该为您提供路径。 另一种方法是使用许多上载库中的一个来异步执行上载,并为您提供一个完整的回调。这是一个流行的选择

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


如果您通过AJAXJS请求提交表单,这将起作用,这意味着您应该添加:remote=>true选项

唯一的问题是Im使用回形针上传文件,javascript不能接触文件系统。发生的情况是浏览器请求html响应,而忽略远程响应。我目前正在尝试使用iframe来解决这个问题,现在的问题是如何让controller将脚本发送回来,这样脚本就可以执行并影响页面本身。有很多文章都是关于通过Internet上的Rails通过AJAX上传文件的。上传本身可以很好地与ifram配合使用,主要问题是浏览器在上传后想做些什么。我已经设法使用javascript超时来模拟“提交后”处理程序。