<script>
layui.use(['layer', 'form','laydate'], function(){
var layer = layui.layer
,laydate=layui.laydate
,form = layui.form;
form.on('submit(go)', function(data){
$.ajax({
url:'/user/addOrUpdate',
method:'post',
data:data.field,
dataType:'JSON',
success:function(res){
if(res.code='0'){
parent.closeIframe(res.msg);
}
else
alert(res.msg);
},
error:function (data) {
}
})
return false;
});
});
</script>
上面代碼的紅色部分就是天坑:前端
症狀:一個簡單的AJAX提交表單操做,常常發生後臺數據保存好了,前端layer彈出層沒有關閉,父頁面沒有刷新,定位發現是回調函數沒有執行!!!用Google Chrome瀏覽器這種現象較少,2而Safari 和 firefox瀏覽器100%發生。ajax
解決過程:困擾了好久,覺得是哪裏代碼有問題,檢查來檢查去沒發現問題,後來基本定位到layUI這個框架。瀏覽器
結果:加上 紅色字體 return false,解決!!框架
附上官方文檔關於這裏的說明!!函數
form.on('submit(*)', function(data){ console.log(data.elem) //被執行事件的元素DOM對象,通常爲button對象 console.log(data.form) //被執行提交的form對象,通常在存在form標籤時纔會返回 console.log(data.field) //當前容器的所有表單字段,名值對形式:{name: value} return false; //阻止表單跳轉。若是須要表單跳轉,去掉這段便可。 });
這是個毛意思?AJAX提交的時候坑咋不說?post