表单里的button默认是submit类型
今天很坑爹,周六一大早加班开始码代码,本来想做数据加密测试,于是乎用tp框架搭建了一个应用环境,二话不说,开始码码。
但,今天一大早就栽坑!直到同事喊吃饭还在坑里出不来!吃完饭继续码,最后码的我想哭o(╥﹏╥)o
我发现,只要是我在加上了<form>标签,我的button绑定的ajax就提交失败,我的button明明没有标记“type=submit”为毛感觉每次ajax提交失败,但页面却莫名奇妙的被刷新!!!
毁三观场面描述如下:
去掉form,点击button,ajax提交成功,顺利执行了ajax回调;
加上form,点击button,ajax阻塞无返回状态,页面自动刷新,但查看后台数据提交成功!
综上,我分析得出结论:
加上form后,进行了表单级提交,刷新了整页面!
而ajax是异步的,所以,后台无法再路由到已被刷新推进history的历史页面,更无法找到回调,所以看到数据被后台保存,而ajax一直是阻塞。
唯一的罪魁祸首就是button了,点击button时肯定触发了form表单的默认提交操作,即使action=""还是会刷新整页面
基于上述分析推论,我给button加上了类型控制,再次保存,运行,一切OK!
- <form method="get" action="">
- <fieldset>
- <legend>新增一条人员信息</legend>
- <div class="row">
- <label>姓名</label><input type="text" name="f_name" required="required" value="test9"/>
- </div>
- <div class="row">
- <label>工号</label><input type="text" name="f_no" required="required" value="test9"/>
- </div>
- <div class="row">
- <label>微信号</label><input type="text" name="f_wx" required="required" value="test9"/>
- </div>
- <div>
- <button type="button" id="btn_add_staff" >提交</button>
- </div>
- <!--表单里的button的问题!-->
- </fieldset>
事实证明,form表单里的button默认的是submit类型,虽然没有在API里看到,但验证过程证实了这一点,为什么之前一直没有发现呢?
因为之前的我,那个小心谨慎保守的,一直用的input,这次本想用下Button,好靠近h5的脚步,没想到这第一步就踩雷了!o(╥﹏╥)o
记录,分享,让技术更美好~ღ( ´・ᴗ・` )比心
表单里的button默认是submit类型的更多相关文章
- form表单里的button调用js函数
近来发现一个特别奇怪的问题:在form表单里,button的onclick事件无法调用js函数.代码如下(这段代码放在form标签里): dropUpdateAddress调用的js函数为: 这个时候 ...
- form表单里如果只存在一个文本框,enter键提交
在这里说一说浏览器里form表单的默认行为 我们都知道浏览器是存在很多默认行为的,可能是出于常用行为考虑又或者是历史原因.但有时候我们不需要这些默认行为.以下: 1).当form表单里只存在一个inp ...
- 一个表单里,如果有<button>标签存在,它会自动提交表单
可以用button代替input type=”submit”吗? 在ie下,<button>标记恐怕还存在几个不大不小的问题. 在一个表单里,如果有一个以上"submit&quo ...
- form表单下的button按钮会自动提交表单的问题
form表单下的button按钮会自动提交表单的问题 2017年01月05日 18:02:44 蓝色水 阅读数:18012更多 个人分类: asp.net form表单下的按钮在没有指定type类 ...
- form 表单<input type="button" value="登录" onclick="loginSubmit ()"/> 点击提示 Uncaught TypeError: loginSubmit is not a function
在网上搜了一堆东东,仔细看了一下,再加上实验,发现原因出在<form>中. <form method="post"> <button type=&qu ...
- 为什么上传文件的表单里要加个属性enctype
为什么上传文件的表单里要加个属性enctype 上传文件的表单中<form>要加属性enctype="multipart/form-data",很多人只是死记硬背知道上 ...
- javaWeb中怎么获取提交表单里面的值
在javaWeb中如何获得html文件中的表单里面的值? <!DOCTYPE html> <html> <head> <meta charset=" ...
- 为什么上传文件的表单里要加个属性enctype----摘录
上传文件的表单中<form>要加属性enctype="multipart/form-data",很多人只是死记硬背知道上传表单要这么写,知其然而不知其所以然.那到底为什 ...
- [.NET Core]ASP.NET Core中如何解决接收表单时的不支持的媒体类型(HTTP 415 Unsupported Media Type)错误呢?
[.NET Core]ASP.NET Core中如何解决接收表单时的不支持的媒体类型(HTTP 415 Unsupported Media Type)错误呢? 在ASP.NET Core应用程序中,接 ...
随机推荐
- leetCode 81.Search in Rotated Sorted Array II (旋转数组的搜索II) 解题思路和方法
Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would this ...
- 2016/04/18 session cookie 对比 应用 <?php session_start() / setcookie()?>
①会话 huihua.php <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...
- myeclipse包的层数和package的层数不一致
复制别人的工程的时候常常遇到包的层数不一致的情况 如下图 其实com.weibo.happpy.dao的上面还有一层java包,但是代码里没有写java....... 可以通过如下方式修改工程:
- Java中会存在内存泄露吗?请简单描述。
本文转载自:Java中会存在内存泄漏吗,请简单描述 会.java导致内存泄露的原因很明确:长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周 ...
- C中使用memset
int i; cout<<memset(&i,1,sizeof(int))<<endl; 输出结果是16843009,而不是填充的1111 1111,为什么呢? 因为m ...
- beego07----web博客
conf/app.conf appname = blog1 httpport = 8080 runmode = dev name=admin pwd=admin controllersmy/attac ...
- SQL语句--常用
一.基础 1.说明:创建数据库CREATE DATABASE database-name 2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备 ...
- div+css布局教程系列1
<!doctype html><html><head><meta charset="utf-8"><title>简单布局 ...
- JavaScript 图片广告自动与手动的切换
1.代码 <html> <head> <script type="text/javascript" src="jquery-1.8.j ...
- 【转】Google 发布 Android 性能优化典范(比较老,但很实用)
2015年伊始,Google发布了关于Android性能优化典范的专题, 一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App.课程专题不仅仅介绍了Android系统中有 ...