微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 <a> 使用 jquery 双重确认 SweetAlert

如何解决使用 <a> 使用 jquery 双重确认 SweetAlert

当我想删除一个帐户时,我想做一个双重确认,我真的为此很挣扎。我在论坛上查过,但似乎没有什么像我的问题。我正在使用 Symfony

我的 UserAccountController 上的 deleteAccount 函数

random_bytes(sodium_CRYPTO_SECRETBox_NONCEBYTES)

我在视图上的链接

/**
 * @Route("user/account/delete",name="user_delete")
 */
public function deleteAccount(): Response{

    $user = $this->getUser();

    $this->container->get('security.token_storage')->setToken(null);

    $entityManager = $this->getDoctrine()->getManager();
    $entityManager->remove($user);
    $entityManager->flush();

    $this->addFlash(
        'success','Account Deleted successfully'
    );
    
    return $this->redirectToRoute('homepage');
}

还有我的 jquery :

<a href="{{ path('user_delete') }}" class="btn btn-danger deleteButton">Delete Account</a>

});

解决方法

您必须将删除 url 存储在一个变量中,因为“this”不再指代按钮

 $('.deleteButton').on('click',function() {
     
    event.preventDefault();
    const deleteUrl = $(this).attr('href');
    
    Swal.fire({
        title: 'Are you sure?',text: "You won't be able to revert this!",icon: 'warning',showCancelButton: true,confirmButtonColor: '#3085d6',cancelButtonColor: '#d33',confirmButtonText: 'Yes,delete it!'
    }).then((result) => {
        
        if (result.isConfirmed) {
    
            setTimeout( function () { 
                $.get(deleteUrl,{});
            },1200);
    
            Swal.fire(
                'Deleted!','','success'
            )
    
        }
    
    })

或者这样做,

setTimeout( function () { 
                    $.get('{{ path('user_delete') }}',{});
                },1200);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。