在JavaScript中模拟Rails表单提交
Simulating Rails form submit in JavaScript
我有一个非常标准的Rails-HAML新对象表单,它做一些常见的事情,并以结尾
= f.submit "Add scenario"
这非常有效,scenarios_controller.rb
也是一个简单的
def create
...create scenario...
redirect_to scenarios_path
end
然而,我也开发了一个向导类型的表单,需要在按下按钮时执行一些JavaScript:
= f.submit "Add scenario", :onclick => "return validateForm()"
在我的CoffeeScript中,我收集了所有信息,最后得到:
$.post(
url
data
(data, textStatus, jqXHR) ->
# How do I follow the redirect?
return false
我的url
和data
是正确的,因为上面的控制器工作正常并创建了我的对象,但我的页面没有重定向到scenarios_path
。我想我应该对发布的结果做点什么,但在网上搜索我找不到什么,检查Chrome调试器中返回的字段也没有任何建议。我看到的唯一建议是使用data.redirect
,但这样的字段并不存在,尽管jqXHR.responseText
似乎包含我要重定向到的页面。
我会使用responsd_to块来区别对待对Scenario#create
的HTML调用和对Scenario#create
的JS调用。
在scenarios_controller.rb
文件中:
def create
# create your object
respond_to do |format|
format.html do
redirect_to scenarios_path
end
format.js
end
end
在views/layouts/scenarios/create.js.erb
中,然后放一些类似的东西:
window.location.replace("<%= scenarios_path %>");
当使用JS调用Scenario#create
时,create.js.erb
文件将被渲染并强制重定向。当您使用HTML调用Scenario#create
时,redirect_to
调用照常进行。
相关文章:
- 在 Ajax Rails 表单提交后,在表单下发布额外的 Javascript 代码 ( ..等)
- 带有远程 => true 的 Rails 表单提交 -- JS 文件呈现但不执行
- 如何在页面访问时自动提交Rails表单
- 在JavaScript中模拟Rails表单提交
- 如何使js成为通过ajax提交的rails表单的格式
- 表单提交使用 jquery 在 rails 中没有 ajax
- 让JQuery/JS在完成后提交Ruby on Rails按钮,与提交Rails表单相比
- Rails/General HTML:如何从两个表单提交内容
- 在提交远程引导模式rails表单之前启动js
- 通过 ajax post 提交的 Rails 表单不调用成功或错误回调函数
- Rails 4:在表单提交中显示带有javascript的微调器
- Rails:表单部分在AJAX提交后未清除/重新加载
- Rails模式表单-在表单提交失败后,用html.erb文件中的内容更新弹出窗口
- Rails表单未使用ajax提交更改
- 用来自rails api的表单提交的新数据重新填充Angular应用的数据
- 试图提交rails表单与触发器/javascript
- 如何从rails表单提交调用JS函数
- 验证Rails表单提交
- Rails表单提交而不刷新页面
- 如何在Rails表单提交上发送画布图像到数据库