这是我很久以前看到的一个技巧,但我忘记在哪里了,当时遇到这样的需求,做了笔记,现在整理成文章分享出来,因为我感觉这个小技巧还是挺有用的,这种应用场景也算比较常见,比如一个表单有“保存”、“保存草稿”、“预览”多个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>

是不是很简单,希望对你有所帮助。

最新文章

  1. macOS 我的装机
  2. GPU大百科全书索引(有助于理解openGL工作流程)
  3. SpringMVC原理解析-Servlet容器启动时初始化SpringMVC应用的原理
  4. Memcache所有方法及参数详解
  5. APP设计师拿到APP产品原型开始,七步搞定APP设计(转)
  6. 玩转数据库之 Group by Grouping
  7. i++和++i
  8. Android --资料集合
  9. 2016年12月9日 星期五 --出埃及记 Exodus 21:4
  10. windowsphone 瀑布流&amp;ui虚拟化
  11. hive的使用和深化理解
  12. PHP算法 《树形结构》 之 伸展树(1) - 基本概念
  13. IOS 隐藏键盘。
  14. html列表问题
  15. 高性能MySQL之【第十五章 备份与恢复】学习记录
  16. ABP架构学习系列
  17. Week04-面向对象设计与继承
  18. 17、 利用扇贝网:https://www.shanbay.com/, 做个测单词的小工具。
  19. Linux系统性能监控工具:tsar 安装、配置、以及使用
  20. Geany的&quot;跳转到标记定义“功能如何使用

热门文章

  1. Mysql 查看被锁住的表
  2. THU OS
  3. CF--思维练习--CodeForces - 216C - Hiring Staff (思维+模拟)
  4. The Preliminary Contest for ICPC Asia Xuzhou 2019 徐州网络赛 A Who is better?
  5. Cypress 自动化环境搭建
  6. unittest(封装用例)
  7. jQuery中val() text()和html()的区别
  8. [zoj3632]线段树的应用
  9. 关于oracle怎么看清楚字段的一些实践
  10. C:复试