使用Play框架我可以创建一个用户可以填写并提交的表单,打开一个javascript确认弹出窗口,在一秒钟后消失,并且不刷新页面。该视频显示了这一点:https://www.youtube.com/watch?v=sErFQiifHKI
但是,我似乎无法在Rails中复制它。我尝试过使用
<%= form_tag "/", :autocomplete => :off, :name => 'sentMessage', :remote => 'true', :id => 'contactForm', :authenticity_token => true, :method => 'post' do %>
和routes.rb
post '/' => 'home#submit_contact'
最后,在home_controller.rb
def submit_contact
redirect_to '#contact'
end
它将弹出javascript确认弹出窗口,但它也会刷新不是我想要的页面!有没有办法复制Rails中视频中显示的内容?
答案 0 :(得分:0)
由于表单是远程表单,因此您的操作也应该使用js / json响应进行响应,而不是重定向到新操作
您可以在控制器操作中添加这些行并定义相应的js模板(submit_contact.js.erb文件)
respond_to do |format|
format.js
end
在这个js模板中,您可以编写JavaScript代码。
答案 1 :(得分:0)
您可以阻止默认操作并发出异步请求。
如果你可以使用jQuery,那么this answer的内容应该可行。否则,对于纯粹的js来说,调整它不应该太难。