layui之ajax--回撥函式
阿新 • • 發佈:2018-12-10
問題:一個簡單的AJAX提交表單操作,經常發生後臺資料儲存好了,前端layer彈出層沒有關閉,父頁面沒有重新整理,定位發現是回撥函式沒有執行!!!用Google Chrome瀏覽器這種現象較少,而Safari 和 firefox瀏覽器100%發生。
解決過程:困擾了很久,以為是哪裡程式碼有問題,檢查來檢查去沒發現問題,後來基本定位到layUI這個框架。
結果:加上 紅色字型 return false,解決!!
<script> layui.use(['layer','form'], function(){ var layer = layui.layer ,form = layui.form; //監聽表單提交 form.on('submit(go)', function(data){ $.ajax({ url:'userAction_addOrUpdate.action', 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){ alert("伺服器繁忙"); } }) return false;//如果不加這句,則ajax的回撥函式不執行 }); }); </script>
官方文件說明:
//監聽表單提交
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; //阻止表單跳轉。如果需要表單跳轉,去掉這段即可。
});