gpt4 book ai didi

jquery - 使用 JQuery 单击警报后获取回调函数以触发

转载 作者:行者123 更新时间:2023-12-05 08:14:34 26 4
gpt4 key购买 nike

我有一个重定向用户的回调函数,我希望在单击警报窗口上的“确定”后触发它。现在,代码如下所示:

function myFunction(callback) {
var ajaxUrl = "url_path";
$.ajax({
url: ajaxUrl,
success: function (data) {
if (data.fieldIsTrue) {
alert("You are being redirected", callback());
} else {
callback();
}
}
});
}

回调包含重定向和表单提交。回调根据 View 模型字段转到不同的位置,因此回调不应该不同。

问题是警报中的回调是在弹出警报时调用,而不是在单击警报时调用。无论如何我可以让警报窗口在页面之间保持打开状态,或者在警报消失后执行回调?

编辑:最初,我曾尝试使用如下所示的成功函数:

success: function (data) {
if (data.fieldIsTrue) {
alert("You are being redirected", callback());
}
callback();
}

所以我不认为解决方案是

alert();
callback();

Edit2:刚刚尝试做

alert();
callback();

并确认在点击弹窗之前重定向仍然发生

这里有更多信息,因为问题出在其他地方:

带回调的函数调用:

        $(".button").click(function (e) {
//e.preventDefault(); doesn't seem to help
myFunction(function () {
if ($("#myForm").validate().form()) {
$("button").disable();
document.forms['myForm'].submit();
} else {
ValidateFields();
}
});

一些cshtml:

@{Html.BeginForm<MyController>(x => x.FunctionWithRedirects(null), FormMethod.Post, new { id = "myForm" });}  
//some hidden fields
<button class="button myButton">Button I want to alert from</button>
@{Html.EndForm();}

解决方案: 所以我最终的工作解决方案实际上具有原始功能,但是看来我在原始按钮单击中没有 e.preventDefault()初始化,因此表单仍会提交。这是我的疏忽,感谢所有试图提供帮助的人。

最佳答案

Is there anyway... make the callback execute once the alert disappears?

是的。只需在警报之后执行回调。

alert("You are being redirected");
callback();

简单!在用户单击“确定”之前,警报会阻止执行。

这是一个简单的示例,显示回调在警报解除后才会运行:http://jsbin.com/sejosexuze/edit?js,console


如果您只希望在 data.fieldIsTrue 时出现警报,但您希望无论如何执行回调,这应该适合您:

if (data.fieldIsTrue) {
alert("You are being redirected");
}

callback();

Is there anyway I can get the alert window to stay up... between pages

不,您不能让 javascript 警报在位置更改期间/之后保持可见。

关于jquery - 使用 JQuery 单击警报后获取回调函数以触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37814999/

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