【问题标题】:Jquery Confirm with Laravel Form does not workJquery Confirm with Laravel Form 不起作用
【发布时间】:2016-04-14 12:47:49
【问题描述】:

我有这个 Jquery 代码:

<script type="text/javascript">
    $('.blog-form').submit(function (e) {
        e.preventDefault();
        var blog_form = $(this);

        bootbox.confirm("Are you sure?", function (result) {
            if (result) {
                blog_form.submit();
            }
        });
    });
</script>

在我的 Laravel 表单中:

{!! Form::open(['action' => ['Test\\TestController@destroy', $thread->id], 'method' => 'delete',  'class' => 'blog-form']) !!}
{!! Form::submit('Delete', ['class' => 'btn btn-danger']) !!}
{!! Form::close() !!}

如果我按下提交按钮,就会出现确认消息。如果我按下“取消”,确认当然会消失。所以.. 如果我按下“确定”按钮,那么确认消息将淡出,但同时会弹出一个已知的确认消息。一遍又一遍地。所以我不能按确定,而不会收到另一条确认消息。我还不能解决这个问题。感谢您的帮助:)

【问题讨论】:

  • 这是因为当您单击“确定”时,您的“确认消息”正在循环播放。尝试使用$('.blog-form').click 而不是$('.blog-form').submit,应该没问题。
  • 完美运行!谢谢:)
  • 你知道我该怎么做类似格式良好的操作:确认确认后删除成功输出吗?
  • 这应该作为一个单独的问题提出。此外,看到提交的表单,您可能应该使用 Laravel 快速通知。

标签: javascript php jquery confirm


【解决方案1】:

问题是你调用了相同的submit() 函数,你在jQuery 中拦截了它。 一种防止这种情况的方法是使用标志。

<script type="text/javascript">
    var confirmed = false;
    $('.blog-form').submit(function (e) {
        if(confirmed){
            return;
        }
        e.preventDefault();
        var blog_form = $(this);

        bootbox.confirm("Are you sure?", function (result) {
            if (result) {
                confirmed = true;
                blog_form.submit();
            }
        });
    });
</script>

【讨论】:

  • 只需用点击替换提交就足够了 :) 还是谢谢 :)
  • 但是您知道流程结束后的确认消息之类的吗? like: '删除成功'
猜你喜欢
  • 1970-01-01
  • 2012-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-24
  • 2021-03-09
  • 2016-08-02
  • 2022-01-11
相关资源
最近更新 更多