如何为Form表单的多个提交按钮指定不同的Action地址?
2024-10-01 11:10:02
这是我很久以前看到的一个技巧,但我忘记在哪里了,当时遇到这样的需求,做了笔记,现在整理成文章分享出来,因为我感觉这个小技巧还是挺有用的,这种应用场景也算比较常见,比如一个表单有“保存”、“保存草稿”、“预览”多个Submit按钮,就可以用到这个技巧。
假如我们有这样一个表单:
<form action="/submit">
<!-- 其它 input 等标签 -->
<input type="submit" value="Submit">
</form>
这里提交表单时,它会转到URL:/submit
,假设您需要另一个提交按钮,该按钮提交到一个不同的URL。
当时我在网上搜索了一些方法,一种方法是放弃提交不同的URL,但给每个提交按钮一个共享的名称,但值不同,然后在处理时检查该值,以执行不同的操作。具体如下:
<input type="submit" name="action" value="Value-1">
<input type="submit" name="action" value="Value-2">
如果需要,可以在处理和重定向期间读取该值,这确实是解决问题的一种方法。
另一种方法是使用JavaScript在单击按钮时更改form标签的acton属性,写法有很多种,但归结起来就是:
<form name="form">
<!-- 其它 input 等标签 -->
<input type="submit" onclick="javascript: form.action='/submit';">
<input type="submit" onclick="javascript: form.action='/submit-2';">
</form>
这依赖于JavaScript来工作,这并没有什么大问题,毕竟现在有谁浏览网页会把JavaScript关掉呢。
最好的方法,其实是用HTML已经有的一个属性:formaction
,应该很少人知道这个属性,至少当时我是不知道的。
你可以把formaction
属性直接将用在submit按钮上,它将覆盖表单本身上的action操作。例如:
<form action="/submit">
<input type="submit" value="Submit">
<input type="submit" value="Go Elsewhere" formaction="/elsewhere">
</form>
是不是很简单,希望对你有所帮助。
最新文章
- macOS 我的装机
- GPU大百科全书索引(有助于理解openGL工作流程)
- SpringMVC原理解析-Servlet容器启动时初始化SpringMVC应用的原理
- Memcache所有方法及参数详解
- APP设计师拿到APP产品原型开始,七步搞定APP设计(转)
- 玩转数据库之 Group by Grouping
- i++和++i
- Android --资料集合
- 2016年12月9日 星期五 --出埃及记 Exodus 21:4
- windowsphone 瀑布流&;ui虚拟化
- hive的使用和深化理解
- PHP算法 《树形结构》 之 伸展树(1) - 基本概念
- IOS 隐藏键盘。
- html列表问题
- 高性能MySQL之【第十五章 备份与恢复】学习记录
- ABP架构学习系列
- Week04-面向对象设计与继承
- 17、 利用扇贝网:https://www.shanbay.com/, 做个测单词的小工具。
- Linux系统性能监控工具:tsar 安装、配置、以及使用
- Geany的";跳转到标记定义“功能如何使用
热门文章
- Mysql 查看被锁住的表
- THU OS
- CF--思维练习--CodeForces - 216C - Hiring Staff (思维+模拟)
- The Preliminary Contest for ICPC Asia Xuzhou 2019 徐州网络赛 A Who is better?
- Cypress 自动化环境搭建
- unittest(封装用例)
- jQuery中val() text()和html()的区别
- [zoj3632]线段树的应用
- 关于oracle怎么看清楚字段的一些实践
- C:复试