Messi jQuery 确认框重定向

Posted

技术标签:

【中文标题】Messi jQuery 确认框重定向【英文标题】:Messi jQuery Confirmation Box Redirect 【发布时间】:2021-05-12 18:12:51 【问题描述】:

我在 WebForms 中有一个 jQuery 脚本,我试图在按钮单击事件上显示一条消息。我的.aspx 文件中有script,我在代码隐藏中调用它。问题是如果用户点击confirm 而不是cancel 按钮,我该如何重定向?

.ASPX 脚本:

<script type="text/javascript">

        $(window).unload(function () 
            CloseWindow();
        )
        //var newEmployeeDetail = document.getElementById(hfNe)

        function confirmAppointEmployee() 
            debugger;
            Messi.ask("Employee appointed successfully",
                function (val) 
                    if (val == false) 
                    $("[id*=Cancel]").click();
                
                else 
                        $("[id*=Confirm]").click();
                

            , 
                buttons: [ id: '0', label: 'Confirm', val: true, 'class': 'btn-primary' ,  id: '0', label: 'Cancel', val: false ]
            );
        

    </script>

代码背后:

 ClientScript.RegisterStartupScript(this.GetType(), "Success", "<script>confirmQuickAppointEmployee()</script>"); 

下面的代码是重定向用户需要调用的字符串。

private string PersonalInformationDetailUrl = Company.Framework.SmartNavigationPersonnel.SmartNavigation.GetUrlByPageName(Company.Framework.SmartNavigationPersonnel.SmartNavigation.PageNameList.PersonalInformationDetail) + "?AllowAddOption=true&AllowDeleteOption=true&RefreshMenuPage=true";

我尝试了下面的方法,但cancelconfirm 按钮都做同样的事情。

  var confirm = "$(document).ready(function() new Messi('Employee appointed successfully', " +
                        "title: 'Title', buttons: [id: 0, label: 'Close', val: 'false',id: 0, label: 'Confirm', val: 'true'], " +
                        "callback: function(val)  window.location.href = '" + Functions.FixClientUrl(PersonalInformationDetailUrl) + "' ); );";
                    this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "confirm", confirm, true);

【问题讨论】:

ID 中包含“取消”和“确认”的元素在哪里,您正在调用click 方法? 请澄清您的问题。例如,您同时引用 confirmQuickAppointEmployeeconfirmAppointEmployee 函数。它们是一样的吗?此外,您将confirmQuickAppointEmployee 注册为启动脚本。为什么?您的问题是关于按钮单击事件...您此时注册了另一个功能...最后但并非最不重要的一点是,您似乎正在使用 MessiJS(对吗?)。这一点很重要,因为回调函数的问题直接受该插件工作方式的影响(顺便说一句,它看起来像废弃软件:没有文档等)。所以,请把它清理干净。 【参考方案1】:

这一切都归结为您的confirmQuickAppointEmployee Javascript 函数,该函数未在问题中指定。很明显,它必须是一个确认对话框/窗口,您可以在其中有一个确认和一个取消按钮/功能。但是,由于问题中没有共享实现,我只能提供一般指导:

找出那个函数是什么

打开浏览器的开发工具,转到其控制台选项卡并输入:

confirmQuickAppointEmployee + ""

然后按 Enter。这将向您显示此函数的源代码(如果存在)。当然,您应该在您的网站上执行此测试。查看此函数的源代码可能会为您提供一些有助于找出答案的信息。

查找使用示例

在您的项目源代码中搜索所有出现的confirmQuickAppointEmployee 以了解它目前的使用情况。如果您仔细查看所有用法,那么您可能会发现一些确认/取消不同的示例。如果您找到这样的示例,那么您只需要了解如何识别确认/取消点击并将相同的想法应用于您的问题。

一种可能性

Javascript 有一个原生的confirm 对话框,可以用作函数调用并返回一个布尔值。在您的控制台中试试这个:

if (confirm("")) 
    alert("confirmed");
 else 
    alert("cancelled");

如果您的 confirmQuickApppointEmployee 碰巧模仿了这种行为,那么您可以类似地使用它。当然,这很大程度上取决于confirmQuickAppointEmployee,问题中没有分享。

【讨论】:

以上是关于Messi jQuery 确认框重定向的主要内容,如果未能解决你的问题,请参考以下文章

Gitlab 电子邮件确认重定向

使用确认 URL 确认 amazon cognito 后如何重定向?

如何使用 ajax jQuery 重定向指定重定向 url

Laravel 5.1 - 注册用户时应用重定向到 /dashboard 但不检查帐户是不是已确认

在 Laravel 中提交表单后如何重定向确认页面?

提交表单后JQuery重定向