首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 5:通过AJAX发送表单,首先修改输入,然后向表单追加视图

Rails 5:通过AJAX发送表单,首先修改输入,然后向表单追加视图
EN

Stack Overflow用户
提问于 2017-07-18 18:18:20
回答 1查看 646关注 0票数 1

(写这个问题的目的只是为了关注相关的问题。)

在页面视图中,我有一个Rails表单:

代码语言:javascript
复制
<%= form_for @model, url: {controller: 'foo', action: 'bar'} do |f| %>
  <!-- various inputs -->
  <%= f.button "Submit", type: 'submit' %>
<% end %>

当我单击“提交”按钮时,我想:

  1. 在发送之前修改一些输入
  2. 通过AJAX发送表单
  3. 将表单替换为与控制器操作相对应的视图(/ view /foo/bar.html.erb)

请问最干净的方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-18 18:30:56

1.使用remote: true 选项通过ajax启用表单提交

代码语言:javascript
复制
<%= form_for @model, url: {controller: 'foo', action: 'bar'}, remote: true do |f| %>

2.在表单提交之前修改输入

代码语言:javascript
复制
$('form.model_name').on('ajax:beforeSend', function(event, xhr, settings) {
  //Modify inputs
});

3.将表单替换为对应于控制器操作的视图(//foo/bar.html.erb)

在处理表单的操作中:

代码语言:javascript
复制
def create
  ....
  .....
  respond_to do |format|
    format.js
  end
end

创建一个.js.erb 模板,其中该控制器的其他模板放置在

create.js

代码语言:javascript
复制
$('form.model_name').html("<%= j(render 'foo/bar.html.erb') %>")`

就这样!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45174313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档