今天很坑爹,周六一大早加班开始码代码,本来想做数据加密测试,于是乎用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类型的更多相关文章

  1. form表单里的button调用js函数

    近来发现一个特别奇怪的问题:在form表单里,button的onclick事件无法调用js函数.代码如下(这段代码放在form标签里): dropUpdateAddress调用的js函数为: 这个时候 ...

  2. form表单里如果只存在一个文本框,enter键提交

    在这里说一说浏览器里form表单的默认行为 我们都知道浏览器是存在很多默认行为的,可能是出于常用行为考虑又或者是历史原因.但有时候我们不需要这些默认行为.以下: 1).当form表单里只存在一个inp ...

  3. 一个表单里,如果有<button>标签存在,它会自动提交表单

    可以用button代替input type=”submit”吗? 在ie下,<button>标记恐怕还存在几个不大不小的问题. 在一个表单里,如果有一个以上"submit&quo ...

  4. form表单下的button按钮会自动提交表单的问题

    form表单下的button按钮会自动提交表单的问题 2017年01月05日 18:02:44 蓝色水 阅读数:18012更多 个人分类: asp.net   form表单下的按钮在没有指定type类 ...

  5. form 表单<input type="button" value="登录" onclick="loginSubmit ()"/> 点击提示 Uncaught TypeError: loginSubmit is not a function

    在网上搜了一堆东东,仔细看了一下,再加上实验,发现原因出在<form>中. <form method="post"> <button type=&qu ...

  6. 为什么上传文件的表单里要加个属性enctype

    为什么上传文件的表单里要加个属性enctype 上传文件的表单中<form>要加属性enctype="multipart/form-data",很多人只是死记硬背知道上 ...

  7. javaWeb中怎么获取提交表单里面的值

    在javaWeb中如何获得html文件中的表单里面的值? <!DOCTYPE html> <html> <head> <meta charset=" ...

  8.  为什么上传文件的表单里要加个属性enctype----摘录

    上传文件的表单中<form>要加属性enctype="multipart/form-data",很多人只是死记硬背知道上传表单要这么写,知其然而不知其所以然.那到底为什 ...

  9. [.NET Core]ASP.NET Core中如何解决接收表单时的不支持的媒体类型(HTTP 415 Unsupported Media Type)错误呢?

    [.NET Core]ASP.NET Core中如何解决接收表单时的不支持的媒体类型(HTTP 415 Unsupported Media Type)错误呢? 在ASP.NET Core应用程序中,接 ...

随机推荐

  1. 【iOS系列】- 通知NSNotification的使用

    [iOS系列]- 通知NSNotification的使用 1:属性 通知属性: - (NSString *)name; // 通知的名称 - (id)object; // 通知发布者(是谁要发布通知) ...

  2. 屏蔽微软的SignalR

    去年采用ASP.NET MVC开发项目,在谷歌浏览器里调试页面的时候,发现项目在不停地请求数据,链接很奇怪: http://localhost:63004/654c2dd725bb4401b8fc0c ...

  3. Serializable and XmlEnum

    The easiest way is to use [XmlEnum] attribute like so: [Serializable] public enum EnumToSerialize { ...

  4. codeforces 686D D. Kay and Snowflake(dfs)

    题目链接: D. Kay and Snowflake time limit per test 3 seconds memory limit per test 256 megabytes input s ...

  5. bzoj 1941 Hide and Seek

    题目大意: n个点,求每个点到其最远点距离-到其最近点距离(除自己之外)的最小值 思路: 对于估计函数的理解还不够深刻 #include<iostream> #include<cst ...

  6. Ural 2003: Simple Magic(数论&思维)

    Do you think that magic is simple? That some hand-waving and muttering incomprehensible blubber is e ...

  7. [HEOI 2012] 采花

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2743 [算法] 首先预处理nxt[]数组 , 其中 , nxt[i]表示下一个和i号 ...

  8. pssh 批量管理执行

    pssh 是一个python写的批量执行工具,非常适合30台服务器以内的一些重复性的操作 安装很简单,只要python版本2.4 以上的都行 用这个工作最好把机器做做好ssh信任关系,不然很麻烦 每次 ...

  9. hdu 2553(N皇后问题)

    N皇后问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  10. bzoj3620

    KMP 我似乎复杂度写的不对... 因为位置相同只算一次,后缀数组什么的都不管用了,我们就暴力kmp,但是我写的是暴力跳...竟然过了...我写bzoj3670才发现... #include<c ...