gpt4 book ai didi

javascript - 使用 AJAX 实现回调/延迟对象

转载 作者:行者123 更新时间:2023-12-03 12:23:48 25 4
gpt4 key购买 nike

下面是当用户单击表单上的“保存”按钮时调用的函数。当PreSaveAction函数返回true时,表单将被提交。如果返回 false,则不会发生任何事情。我在此处使用 AJAX 调用来验证表单值,并且希望在 validateUniqueStaff 成功时 PreSaveAction 返回 true,如果失败则反之亦然。

function PreSaveAction() { 
$.ajax({
url: listUrl,
type: "GET",
dataType: "json",
success: validateUniqueStaff,
error: function (data) {
alert("Error: Problem with the AJAX request");
}
});

//if (validateUniqueStaff succeeds) return true, else return false
}

我的问题是我不知道如何在这里合并一个延迟对象。我尝试过同步运行 ajax 调用,这在 Chrome 中有效,但在 IE8 中无效(要求)。

我完全被难住了。任何建议将不胜感激!如果我可以提供任何其他信息,请告诉我。

最佳答案

这确实是可能的!

您需要使用开发者工具(F12)来获取按钮后面当前的java脚本代码。

接下来如何进行:

    //1. unbind the current handler:

var saveButton = ...; //your id (looks like ctl00_***)
var saveButtonCallBack = ...; //call back id (looks like ctl00$...)

//2. When document is ready

jQuery(saveButton).unbind('click').click(function(){

PreSaveActionPeter(

function (){
WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(saveButtonCallBack, "", true, "", "", false, true))
}
)
});

//3. Define your function:

function PreSaveActionPeter(callBack)
{
jQuery.ajax({
url: *your url*,
method: "GET",
headers: {
"accept": "application/json;odata=verbose",
},
dataType: "json",
success: function (data) {
if (data.d.results.length > 0) {
callBack();
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(XMLHttpRequest.responseText);
}
});

return true;
}

//4. Override of the default PreSaveAction

function PreSaveAction()
{
return false;
}

关于javascript - 使用 AJAX 实现回调/延迟对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24317367/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com