今天很坑爹,週六一大早加班開始碼代碼,原本想作數據加密測試,因而乎用tp框架搭建了一個應用環境,二話不說,開始碼碼。html
但,今天一大早就栽坑!直到同事喊吃飯還在坑裏出不來!吃完飯繼續碼,最後碼的我想哭o(╥﹏╥)oajax
我發現,只要是我在加上了<form>標籤,個人button綁定的ajax就提交失敗,個人button明明沒有標記「type=submit」爲毛感受每次ajax提交失敗,但頁面卻莫名奇妙的被刷新!!!微信
毀三觀場面描述以下:框架
去掉form,點擊button,ajax提交成功,順利執行了ajax回調;異步
加上form,點擊button,ajax阻塞無返回狀態,頁面自動刷新,但查看後臺數據提交成功!測試
綜上,我分析得出結論:ui
加上form後,進行了表單級提交,刷新了整頁面!加密
而ajax是異步的,因此,後臺沒法再路由到已被刷新推動history的歷史頁面,更沒法找到回調,因此看到數據被後臺保存,而ajax一直是阻塞。spa
惟一的罪魁禍首就是button了,點擊button時確定觸發了form表單的默認提交操做,即便action=""仍是會刷新整頁面orm
基於上述分析推論,我給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
記錄,分享,讓技術更美好~ღ( ´・ᴗ・` )比心