【问题标题】:Sweet Alert Delete Confirmation in Laravel leading to an undefined URLLaravel 中的 Sweet Alert 删除确认导致未定义的 URL
【发布时间】:2021-10-07 12:00:12
【问题描述】:

我有以下按钮来删除我的Laravel 应用程序中的记录。

{!! Form::open(['method' => 'DELETE','route' => ['inqueries.destroy', $inquery->id],'style'=>'display:inline']) !!}

{!! Form::button('<img class="nc-icon" src="../admin_icons/trash.svg" >', ['class' => 'btn btn-default btn_icon button delete-confirm','type'=>'submit']) !!}

{!! Form::close() !!}

至于删除确认,我正在尝试使用sweet alerts

所以我使用下面的JS 代码,

<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>

<script>
$('.delete-confirm').on('click', function (event) {
    event.preventDefault();
    const url = $(this).attr('href');
    swal({
        title: 'Are you sure?',
        text: 'This record and it`s details will be permanantly deleted!',
        icon: 'warning',
        buttons: ["Cancel", "Yes!"],
    }).then(function(value) {
        if (value) {
            window.location.href = url;
        }
    });
});       
</script>

即使我点击删除后它会显示sweet alert,但一旦我点击是按钮,它会将我重定向到404 路由。

http://testlink.local/admins/undefined

而且记录也不会被删除。

如何在我的JS中根据按钮动作路由正确设置删除路由?

我已将路线设置为,

Route::resource('/admins/inqueries','Admin\InqueryController');

【问题讨论】:

    标签: javascript php laravel sweetalert


    【解决方案1】:

    按钮会触发js代码。而且该按钮没有任何 href 属性,这就是您在结果中得到未定义的原因。

    您可以使用按钮的父方法获取表单元素的href属性,也可以直接使用表单元素获取href属性。

    const url = $(this).parent().attr('href')
    

    const url = $('form').attr('href')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-10
      • 1970-01-01
      • 2017-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多