【问题标题】:Confirm delete with laravel form?用 laravel 表单确认删除?
【发布时间】:2014-12-24 21:01:26
【问题描述】:

确认删除的问题,一切正常,但如果您在确认弹出窗口中单击取消,它将从数据库中删除该项目。有任何想法吗?请用代码示例显示,我是 laravel 新手。

<script>

  function ConfirmDelete()
  {
  var x = confirm("Are you sure you want to delete?");
  if (x)
    return true;
  else
    return false;
  }

</script>

{!! Form::open(['method' => 'DELETE', 'route' => ['path_delete_time', $time->id], 'onsubmit' => 'ConfirmDelete()']) !!}

  {!! Form::hidden('case_id', $project->id, ['class' => 'form-control']) !!}

  {!! Form::button('<i class="glyphicon glyphicon-trash"></i>', array('type' => 'submit', 'class' => 'specialButton')) !!}

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

【问题讨论】:

    标签: php forms laravel confirm


    【解决方案1】:

    只需将返回添加到您的onsubmit 电话。所以函数返回的值决定了表单是否被提交。

    'onsubmit' => 'return ConfirmDelete()'
    

    【讨论】:

    • 非常感谢,通过 Laravel 的“数据确认”很容易获得链接,但这被难住了。
    【解决方案2】:

    提交表单或删除记录时的提示框的简单放置jQuery代码。

    jQuery(document).ready(function($){
         $('.deleteGroup').on('submit',function(e){
            if(!confirm('Do you want to delete this item?')){
                  e.preventDefault();
            }
          });
    });
    

    【讨论】:

      【解决方案3】:
      <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
          <script>
              $(".specialButton").click(function(){
                  return confirm("Do you want to delete this ?");
              });
          </script>
      

      【讨论】:

      • 虽然这段代码 sn-p 可以解决问题,including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
      【解决方案4】:

      你可以给表单一个id,然后使用jQuery:

       {!! Form::open(['method' => 'DELETE', 'route' => ['path_delete_time', $time->id], 'id' => 'FormDeleteTime']) !!}
      
         <script type="text/javascript">
           $("#FormDeleteTime").submit(function (event) {
                       var x = confirm("Are you sure you want to delete?");
                          if (x) {
                              return true;
                          }
                          else {
      
                              event.preventDefault();
                              return false;
                          }
      
                      });
      </script>
      

      【讨论】:

        【解决方案5】:

        没有任何函数调用...

        'onsubmit' => 'return confirm("are you sure ?")'
        

        例子

                    {!! Form::open(['url'=>'posts/'.$post->id.'/delete','method'=>'DELETE','class'=>'form-horizontal',
                'role'=>'form','onsubmit' => 'return confirm("are you sure ?")'])!!}
        

        使用 laravel 5

        【讨论】:

          【解决方案6】:

          在我的新项目(Laravel 5.3)中,我正在使用以下内容:

          {!! Form::open(['method' => 'DELETE', 'route' => ['admin.user.delete', $user], 'onsubmit' => 'return confirmDelete()']) !!}
              <button type="submit" name="button" class="btn btn-default btn-sm">
                  <i class="fa fa-trash-o"></i>
              </button>
          {!! Form::close() !!}
          

          提及 'onsubmit' => 'return confirmDelete()' 否则我在未确认问题的情况下关闭警报时会遇到一些问题。

          JavaScript:

          function confirmDelete() {
              return confirm('Are you sure you want to delete?');
          }
          

          【讨论】:

          • 直接返回result
          【解决方案7】:

          现在唯一发生的事情是您会收到一个弹出窗口,它会延迟重定向到删除页面。

          您可能会做的只是生成一个链接,然后在 js 中生成一个表单。 Like what they're doing here (only with JQuery)

          【讨论】:

            【解决方案8】:

            只是想我会概括一下:

            .html

            <form method="post" action="..." class="has-confirm" data-message="Delete this Thing?">...</form>
            

            .js

            $("form.has-confirm").submit(function (e) {
              var $message = $(this).data('message');
              if(!confirm($message)){
                e.preventDefault();
              }
            });
            

            【讨论】:

              【解决方案9】:

              我知道已经有一段时间了,但这是 IMO 最顺畅的方式:

              'onsubmit' => 'return confirm("Do you want to delete this user?");'
              

              在表单标签中。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2012-07-23
                • 2016-01-04
                • 1970-01-01
                • 1970-01-01
                • 2015-01-08
                • 1970-01-01
                • 2020-03-11
                • 2021-02-25
                相关资源
                最近更新 更多