JQuery窗口确认未提交

JQuery swal confirmation doesn't submit

本文关键字:提交 确认 窗口 JQuery      更新时间:2023-09-26

我试图使用sweet alert创建确认。当用户点击按钮,swal(警报)窗口打开,他们可以确认或取消。如果点击confirm,那么JQuery应该点击它。

但是它什么也不做。你知道问题出在哪里吗?

我已经尝试了多种选择- unbind.click()等。

$('.button-apply').on('click', function (e) {
        var t = $(this);
        e.preventDefault();
        swal({
            title: "Are you sure?",
            text: "Do you want to apply for this job?",
            type: "info",
            showCancelButton: true,
            confirmButtonColor: "#b3ff99",
            confirmButtonText: "Confirm",
            //closeOnConfirm: false,
            //showLoaderOnConfirm: true,
            html: false
        }, function (isConfirm) {
            if (!isConfirm) {
                return;
            } else {
                t.click();
            }
        })
    })
编辑:

更改} else { t.click(); }

} else {
                t.unbind('click');
                t.trigger('click');
            }

成功解除绑定,但t.trigger('click')没有执行。

解决:

因为它是一个<a href....>,我不能做t.submit(),当它被解除绑定,所以我用window.location.href = t.attr('href');代替了t.click(),它正常工作。

您已经指定了e.preventDefault();,它将阻止button-apply上的事件触发。删除这一行,点击事件将返回。

作为一个额外的注意,当用户按下取消时,您将再次触发相同的事件,这将导致无限循环。您应该删除t.click();,并放置您想要在用户执行此操作时调用的逻辑。

例如:

$('.button-apply').on('click', function (e) {
        var t = $(this);
        swal({
            title: "Are you sure?",
            text: "Do you want to apply for this job?",
            type: "info",
            showCancelButton: true,
            confirmButtonColor: "#b3ff99",
            confirmButtonText: "Confirm",
            //closeOnConfirm: false,
            //showLoaderOnConfirm: true,
            html: false
        }, function (isConfirm) {
            if (!isConfirm) {
                alert('You have not applied for the job!');
            } else {
                alert('You have applied for the job');
                // Submit form $("#yourForm").submit();
                // or an AJAX call.
            }
        })
    })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.js"></script>
<button class="button-apply">Click me</button>