jquery JavaScript Alertify等待确认,然后转到另一个页面

icomxhvb  于 2023-06-22  发布在  jQuery
关注(0)|答案(3)|浏览(155)

我是alertify.js的新手。我想做的是,当用户点击一个链接时,浏览器应该显示确认框。如果用户单击,则转到下一页。如果用户单击取消,则停留在同一页面。是否可以使用alertify.js来实现?
这是我的HTML代码。

<a href="index.php" class="alert">Logout</a>

下面是我的JavaScript代码。

$(".alert").on('click', function(){
    alertify.confirm("Are you sure?", function (e) {
        if (e) {
            return true;
        } else {
            return false;
        }
    });
});

但问题是,每当我点击链接时,我都会在点击确认之前转到index.php页面。

hm2xizp9

hm2xizp91#

问题是让代码等待是不可能的。因此,您需要做的是取消原来的单击,然后调用代码导航到新页面。

$(".alert").on('click', function(e){
    e.preventDefault();
    var href = this.href;
    alertify.confirm("Are you sure?", function (e) {
        if (e) {
            window.location.href = href;
        }
    });
});
w1jd8yoj

w1jd8yoj2#

我可以解决这个问题,我的解决方案asnyc await函数:
示例:

function confirmDialogAsync(message = "", okText="Yes", cancelText="No") {
        return new Promise((resolve) => {
            alertify.confirm(
                message, 
                () => {resolve(true);},
                () => {resolve(false);}
            )
            .set({ title: " " })
            .set({ labels: { ok: okText, cancel: cancelText } });
        });
      }

const saveControlValidation = async () => {

console.log(1); 

 if (!(await confirmDialogAsync("Hello Salih ŞEKER","Hi","Bye"))) {
               return false;
    }

console.log(2);

}
lb3vh1jj

lb3vh1jj3#

$(".alert").on('click', function(){
    e.preventDefault();
    alertify.confirm("Are you sure?", function (e) {
        if (e) {
            //window.location...redirect
        } else {
            //do something
        }
    });
});

你不需要返回true或false...你已经在if语句中检查过了

相关问题