我试图通过在jQuery中编写一个通用函数来尽量减少添加到代码中的相似函数的数量。对于表单提交,AJAX代码的顶部对于我的所有应用程序都大致相同,但是成功部分中发生的情况在各个应用程序之间可能会有很大差异。
function general_submit_form(url, query, button, form) {
$(document).on("click", button, function() {
var data = $(this).closest('form').serialize();
var url = url + '?' + query;
$.ajax({
type: 'POST',
data: data,
url: url,
success: function(data) {
console.log(data);
if (data == 0) {
alert("Required parameters are empty!");
} else if (data == 1) {
alert("Storage Space Added");
//fetch_storage_spaces();
$(form)[0].reset();
$(".custom_input").closest('tr').addClass('hidden');
fetch_storage_names("fetch_storage_names", "#storage_names");
fetch_all_storage_submit_forms();
} else if (data == 2) {
alert("Storage name or serial taken");
}
}
});
});
}
此函数是我要编写的常规函数的示例。有什么办法可以改变函数外代码成功部分内部发生的事情?具体在data == 1
if语句中?
谢谢!
您也可以将成功函数作为参数传递。
function general_submit_form(url, query, button, form, success) {
$(document).on("click", button, function() {
var data = $(this).closest('form').serialize();
var url = url + '?' + query;
$.ajax({
type: 'POST',
data: data,
url: url,
success: success,
});
});
}
const success_fn = function(data) {
console.log(data);
if (data == 0) {
alert("Required parameters are empty!");
} else if (data == 1) {
alert("Storage Space Added");
//fetch_storage_spaces();
$(form)[0].reset();
$(".custom_input").closest('tr').addClass('hidden');
fetch_storage_names("fetch_storage_names", "#storage_names");
fetch_all_storage_submit_forms();
} else if (data == 2) {
alert("Storage name or serial taken");
}
};
general_submit_form("url", "query", "button", "form", success_fn);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句