首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Rails中的多个提交按钮/表单

在Rails中,你可以在一个表单中设置多个提交按钮,并根据用户点击的按钮执行不同的操作。每个提交按钮都可以有一个不同的名称和值。

例如,你可以在表单中添加两个提交按钮,一个用于保存,另一个用于预览:

代码语言:javascript
复制
<%= form_with(model: @post, local: true) do |form| %>
  <!-- form fields here -->

  <%= form.submit "Save", name: "commit", value: "save" %>
  <%= form.submit "Preview", name: "commit", value: "preview" %>
<% end %>

然后,在你的控制器中,你可以检查params[:commit]的值来确定用户点击了哪个按钮:

代码语言:javascript
复制
def create
  @post = Post.new(post_params)

  case params[:commit]
  when "save"
    if @post.save
      redirect_to @post, notice: 'Post was successfully created.'
    else
      render :new
    end
  when "preview"
    # handle preview here
  end
end

在这个例子中,如果用户点击"Save"按钮,params[:commit]的值将是"save",如果用户点击"Preview"按钮,params[:commit]的值将是"preview"。然后你可以在控制器中根据params[:commit]的值执行不同的操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【HTML】HTML 表单 ② ( 按钮表单 | 普通按钮 | 提交按钮 | 重置按钮 | 图片按钮 | 文件域 )

文章目录 一、按钮表单 1、普通按钮 2、提交按钮 3、重置按钮 4、图片按钮 二、文件域 一、按钮表单 ---- 1、普通按钮 将 标签 的 type 属性设置为 button..."> 小时效果 : 2、提交按钮 将 标签 的 type 属性设置为 submit , 就可以将该 表单组件 设置为 提交按钮 类型表单...; 提交按钮 默认显示的文本信息是 " 提交 " , 通过 value 属性 可以设置 该 提交按钮 显示的 文本内容 ; 标签 的 type 属性设置为 reset , 就可以将该 表单组件 设置为 重置按钮 类型表单 ; 提交按钮 默认显示的文本信息是 " 重置 " , 通过 value 属性...="图片按钮"/> 点击 网页中的 " 选择文件 " 按钮 , 弹出文件选择对话框 ;

8.1K40

提交到不同URL的表单按钮

-- inputs and stuff --> 当你提交表单,它会跳转到/submit。...然后你需要 另一个 提交按钮,跳转到不同的URL。为什么需要这样做不重要,任何事都有原因,毕竟网页包含太多东西。 我找到了一些人们尝试处理这个问题的其它方法。...其中一种方法是放弃提交到不同的URL,但是给每个提交按钮一个相同的name,不同的value,然后当需要处理不同问题时检查value值。...正确的答案HTML已经为你想到了。我猜它或许并没有像它应该的那样众所周知,因此才有了这篇文章。 它是formaction属性,你可以直接放在提交按钮里,它会覆盖表单自己的action。...---- 往期精选文章 ES6中一些超级好用的内置方法 浅谈web自适应 使用Three.js制作酷炫无比的无穷隧道特效 一个治愈JavaScript疲劳的学习计划 全栈工程师技能大全 WEB前端性能优化常见方法

2K30
  • Jquery 实现表单提交按钮变灰,防止多次点击提交重复数据

    表单提交时候我们应该控制提交按钮,不能点击多次进行数据的重复提交。要不然就会有冗余的重复的数据在系统中,造成系统出现数据垃圾。...jQuery很简单的就可以实现对表单提交按钮控制,下面就是相关的例子和代码。 [html] view plain copy print ?.../xdp-gacl/p/3859416.html 其实后台控制表单重复提交的原理: (1)在表单提交页面生成一个唯一的token;token可以保存在session中。...(若使用了缓存,也可以保存在缓存中) (2)提交的时候验证,后台首先验证token,验证通过,才可以进行提交操作; (3)当表单数据提交成功(保存到数据库-持久化),然后删除session(缓存)中对应的...在页面中添加Token防止越权访问-也可做表单重复提交,使用的原理也是Token!

    4K20

    java表单提交方法_表单提交的几种方式

    大家好,又见面了,我是你们的朋友全栈君。 通用提交按钮–> 2、 提交 3、 说明:用户提交按钮或图像按钮时,就会提交表单。...使用或都可以定义提交按钮,只要将其特性的值设置为“submit”即可,而图像按钮则是通过的type特性值设置为”image”来定义的。因此,只要我们单击一下代码生成的按钮,就可以提交表单。...4、阻止表单提交 只要在表单中存在上面列出的任何一种按钮,那么相应表单控件拥有焦点的情况下,按回车键就可以提交表单。如果表单里没有提交按钮,按回车键不会提交表单。...提交表单时可能出现的最大问题,就是重复提交表单。在第一次提交表单后,如果长时间没有反映,用户可能会变得不耐烦。这时候,他们也许会反复单击提交按钮。...解决这一问题的办法有两个: 在第一次提交表单后就禁用提交按钮; 利用onsubmit事件处理程序取消后续的表单提交操作。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    5K40

    Button按钮为什么无缘无故会提交form表单?

    我的form表单里有好几个Button按钮,每个按钮有不同的功能,可是这些按钮居然都有提交功能,真是把我惊呆了 <button class="btn btn-info " οnclick="do_collection...()" title="非Guest用户可收藏">收藏 这个问题困惑了我好几天一直百思不得其解,然后我就去查了一下button按钮的属性,才发现原来是因为我没有指定Button按钮的type...属性值,type有三个可选属性:Button,submit,reset,而Button按钮的type属性默认值是submit ,所以在没有指定type属性的情况下,点击Button按钮触发提交form表单就合情合理了...,所以要想此按钮不提交,可以指定Button按钮的type属性值为Button <button class="btn btn-info " type="button" οnclick="do_collection

    71530

    小白前端入门笔记(19),form表单里的加入提交按钮

    大家好,欢迎来到freecodecamp HTML专题的第19篇。 今天的挑战关于form表单添加提交按钮。...背景知识 在上一次挑战当中我们尝试了给一个input元素添加form表单,但是我们只是添加了表单是不够的,用户填好了信息但是少了一个触发上传的按钮。...所以今天我们就来说说怎么给form表单添加一个提交按钮。 添加的方法非常简单,在HTML当中专门有一个标签就叫做button,它可以在页面上创建一个按钮。...但是并不是随便一个按钮就可以提交信息的,我们必须要保证它的类型是"submit",这样将它放在表单当中,就可以提交信息了。...要求 你的form必须要有button按钮 你的提交按钮必须要有type="submit" 你的提交按钮必须要有文本"Submit" 你的按钮元素需要有closing tag 编辑器 CatPhotoApp

    1.4K30

    form实现表单提交的各种方法(表单提交源码)

    javacript函数来提交表单,方法就非常多非常灵活了,比如可以把它加入到任意一个标签的onclick事件中: ... 提交 但是,如果一个表单里有需要有多个提交按钮怎么办呢...比如一个表单里的提交按钮所指向的处理页面不同,这样由于表单在定义的时候就已经确定下表单数据的处理页面,所以单纯地在表单里放多个提交按钮是没有办法达到目的的。这就需要javascript。...,而提交功能的实现方法是在它的onclick事件中调用javascript函数....button,要先进行数据验证的话,就必须要将type的值设置为”button”,即表示它是一个按钮 这里提交的数据’data’,使用了serialize()方法将提交的表单值序列化(即a=1&b=2格式

    5.6K30

    表单提交中的input、button、submit的区别

    再加上它的样式难以定制、不可作为其他标签的容器, 所以建议不要用input作为表单提交按钮。 注意:input的type属性还可以是button,这时它只是一个按钮,不会引发表单提交。...IE浏览器的兼容,请记住button[type]在IE中的默认值是button,这意味着它只是一个按钮而不会引发表单提交。   ...提交表单时,value会被作为表单数据提交给服务器。 在IE中,甚至会把button开始与结束标签之间的内容作为name对应的值提交给服务器。...当表单中只有一个单行的文本输入控件时,用户代理应当接受回车键来提交表单。 “单行”指的是type为text而非textarea,显然在textarea中回车提交表单是怎样的难以接受。...其实在实践中,有多个单行的input也可以用Enter提交,比如登录页面。 4.阻止表单提交 阻止表单提交也是一个常见的话题,通常用于客户端的表单验证。

    4.1K100

    layui踩坑记录之form表单下的button按钮默认自动提交

    首先参考下面这篇文章: layui form表单下的button按钮会自动提交表单的问题以及解决方案_layui form里面其他button按钮_你用点心就行的博客-CSDN博客 他说的已经很清楚了...,我再补充(啰嗦)一下: 其实就是使用form的时候,应该对应有一个提交按钮,配套使用。...layui的官网说的也是比较清楚的,通过给按钮button加上“lay-submit”属性来表示它作为一个提交按钮,标准写法如下: <button class="layui-btn" lay-submit...官方文档地址: 表单组件 form - Layui 文档 因此,当我们在使用form的时候,如果没有添加标准的提交按钮,会自动默认把其他的普通按钮认为是提交按钮,因为button的type默认值为“submit...使用时注意: 1.在form中使用button时添加type属性:button、submit、reset; 2.在不需要提交的场景使用form时尽量使用a标签按钮来代替button,比如筛选功能中的查询按钮

    1.1K20

    flask表单处理_html表单的提交方法

    大家好,又见面了,我是你们的朋友全栈君。 这里介绍一下Flask表单提交相关的方法,还是以代码实例为主。...首先,Flask模板中表单提交代码与我们一般写的H5表单无异,当然,Flask也提供了表单类,Flask-WTF扩展。这里只介绍常规的表单提交方法。 首先是模板类: 提交信息后,地址栏显示信息如下: 如果此时点击刷新按钮,那么会出现以下提示: 这不太友好,要解决这个问题可以使用重定向,Flask提供了redirect函数,用法如下: @app.route...解决办法是在代码中加入: app.config['SECRET_KEY'] = 'myproject'app.secret_key = 'myproject' 当然,通常不同的程序使用不同的密钥,并且密钥应该保存在环境变量中...在进行表单提交操作时,如果我们写错了用户名或者密码,页面往往会给出提示,Flask提供了很方便的操作,即使用Flash消息。

    2.3K20

    jsp表单的批量提交

    remark)) }); $.messager.alert('提示', '保存成功'); 如果数据量不大可以这样直接提交...,如果数据一旦超过几十条那么会造成页面卡顿,同时ie会提示“此脚本运行时间过长,是否终止”,一旦点击是,那么表单就无法直接提交了; 对于有较多行的数据,可以将其拼凑成json 然后 提交,效率会大大的提高...注意在拼凑json的时候要注意符号的转义 baseBaseLineFormSubmit=f<c:forEach items="${list...} } }); $.messager.alert('提示', '保存成功'); 记得要用post方式因为get会限制你提交的数据的大小...下一步是在后台对json进行处理 首先是duijson格式进行修改去除最后一个元素的逗号;然后将其转换为对应的对象的list ,剩下的就是对list进行遍历处理。

    1.4K20

    jquery的form表单提交

    使用jQuery实现Form表单提交在Web开发中,表单提交是一个常见的操作,通过表单提交用户可以向服务器发送数据。...在上面的表单中,我们有两个输入框用于输入姓名和邮箱,以及一个提交按钮。...在success回调函数中处理提交成功的情况,而在error回调函数中处理提交失败的情况。 通过以上示例,我们使用jQuery实现了一个简单的表单提交操作。...Form表单由包含在和标签之间的多个表单元素组成。用户可以在表单中输入文本、选择选项、上传文件等,然后通过表单提交按钮将这些数据发送给服务器。...htmlCopy code当用户填写完表单后,通过点击提交按钮,浏览器会将表单中的数据封装成一个HTTP请求,然后发送给服务器

    17410
    领券