梅西 jQuery 确认框重定向

3

我有一个jQuery脚本在WebForms中,我想让它在按钮点击事件上显示一条消息。我把script放在我的.aspx文件中,并在代码后台中调用它。问题是如果用户点击了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";

我尝试了以下方法,但是“取消”和“确认”按钮执行的操作相同。
  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);

你正在调用 click 方法的具有 "Cancel" 和 "Confirm" ID 元素在哪里? - Heretic Monkey
请澄清您的问题。例如,您同时提到了confirmQuickAppointEmployeeconfirmAppointEmployee函数。它们是相同的吗?此外,您将confirmQuickAppointEmployee注册为启动脚本。为什么?您的问题涉及按钮单击事件...您在那一点上又注册了另一个函数...最后但并非最不重要的是,看起来您正在使用MessiJS(对吧?)。这很重要,因为您与回调函数的问题直接受到该插件工作方式的影响(顺便说一下,它看起来像是被放弃的软件:没有文档等)。所以,请整理一下。 - dpant
1个回答

0

这一切归结于你的《confirmQuickAppointEmployee》JavaScript函数,在问题中没有具体说明。很明显,它必须是一个确认对话框/窗口,其中包含确认和取消按钮/功能。但由于问题中未提供具体实施方法,我只能提供一般性的指导原则:

找出该函数是什么

打开你浏览器的开发工具,转到“控制台”选项卡,并输入以下内容:

confirmQuickAppointEmployee + ""

然后按回车键。如果存在该函数,这将显示该函数的源代码。自然地,您应该在您的网站上执行此测试。查看此函数的源代码可能会提供一些信息,有助于找出答案是什么。

查找用法示例

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

一种可能性

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

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接