1. 程式人生 > >layui之ajax巨坑

layui之ajax巨坑

parent load return .get ont ole content user sub

在使用layui做前端框架的時候,在請求ajax時,回調函數不執行問題,找了各種原因,各種的更改ajax參數類型和webapi返回類型 各種不行,最後發現layui默認是form提交,想要讓他執行ajax回調就只是一句話 return false 看代碼

layui.use([‘form‘, ‘layer‘], function () {
$ = layui.jquery;
var form = layui.form
,layer = layui.layer;

//自定義驗證規則
form.verify({
nikename: function (value) {
if (value.length < 5) {
return ‘昵稱至少得5個字符啊‘;
}
}
, pass: [/(.+){6,12}$/, ‘密碼必須6到12位‘]
, repass: function (value) {
if ($(‘#L_pass‘).val() != $(‘#L_repass‘).val()) {
return ‘兩次密碼不一致‘;
}
}
});

以上只是框架加載部分

//監聽提交
form.on(‘submit(add)‘, function (data) {
if (post_adduser) return;
post_adduser = true;
var UserName = $("#username").val();
var Password = $("#L_pass").val();
var FullName = $("#L_email").val();
var Phone = $("#phone").val();
var index = document.getElementById("Dropplace").selectedIndex;
var p = document.getElementById("Dropplace").options[index].value;
var index1 = document.getElementById("Droproles").selectedIndex;
var c = document.getElementById("Droproles").options[index1].value;
var RoleIDs = p + "||" + c;
var loading = layer.load(1);
var user = "{\"UserName\":\"" + UserName + "\",\"Password\":\"" + Password + "\",\"FullName\":\"" + FullName + "\",\"Phone\":\"" + Phone + "\",\"RoleIDs\":\"" + RoleIDs + "\"}";
$.ajax({
url: "http://xxxxxxxxxxxxxx/api/User/AddUser",
//dataType: ‘text‘,
contentType: "application/json",
data: user, //請求的附加參數,用json對象
method: ‘POST‘,
success: function (res) {
if (res == true) {
post_adduser = false;
layer.close(loading);
layer.msg("添加成功", { icon: 6, time: 2000 }, function () {
// 獲得frame索引
parent.location.reload();
var index = parent.layer.getFrameIndex(window.name);
//關閉當前frame
parent.layer.close(index);
});
}
else {
post_adduser = false;
layer.close(loading);
layer.msg("添加失敗", { icon: 5 });
}

},
error: function () {
post_adduser = false; //AJAX失敗也需要將標誌標記為可提交狀態
layer.close(loading);
layer.msg("添加失敗", { icon: 5 });
}
});
return false;//只此一句


});
});

layui之ajax巨坑