首页 > 解决方案 > 为什么按钮 onclick 在数据表服务器端不起作用?拉拉维尔 6

问题描述

我的表上有删除功能(使用数据表)这个删除工作正常,但我想在我的删除上添加一些弹出警报,如“onclick”,但它在我的按钮上不起作用

 public function indexDataTables_pns()
{

    $pns = Data_pns::with('users','master_golongan','master_jabatan')->get();


    return Datatables::of($pns)->addIndexColumn()

    ->addColumn('Nama', function ($pns) {
        return '<a href="/pns/'.$pns->id.'" target="_blank">'.$pns->users->nama.'</a>';   
    })
    ->editColumn('edit', function ($pns) {
        return '<a href="/edit_pns/'.$pns->id.'" target="_blank" class="btn btn-xs btn-success"><i class="glyphicon glyphicon-edit"></i></a>';
    })
    ->editColumn('hapus', function ($pns) {

        $c = csrf_field();
        $m = method_field('DELETE');

    return "<form action='/delete/$pns->id' method='POST')>
            $c
            $m

            <button style='margin-left:10px; width: 30px;' type='submit'
                class='btn btn-xs btn-danger delete' onclick='return 
                confirm('do you want to delete this data ?')'>
                <i class='glyphicon glyphicon-remove-circle'></i>
            </button>
        </form>";
    })
    ->rawColumns(['Nama' => 'Nama','hapus' => 'hapus','action' => 'action','edit'=>'edit'])
    ->make(true);

}

它没有用

我尝试添加课程

<form action='/delete/$pns->id' method='POST' class='delete-form'>

并添加此脚本

<script>
$('.delete-form').submit(function(event){
    if(!confirm('Anda yakin mau menghapus item ini ?')){
        event.preventDefault();
    }
});

但仍然没有工作。我把这个放在我的看法之下。

我尝试像这样添加 onsubmit

<form onsubmit='return confirm('Anda yakin mau menghapus item ini ?')'>

仍然没有工作,我来自这个线程这个链接,但我没有找到答案..

看这张图片

有人能帮我吗 ?


更新

我试着添加这个表单类

return "<form action='/delete/$pns->id' method='POST' class='delete-form')>

在我单击此删除按钮后显示此弹出窗口,但此消息为空/空,

 @push('scripts')
  <script>
    $(function() {
        $('#table').DataTable({
            processing: true,
            serverSide: true,
            responsive: true,
            ajax: '{!! route('d_pns') !!}',
            columns: [
                { data: 'DT_RowIndex', name: 'DT_RowIndex', orderable: false,searchable: false},
                { data: 'Nama', name: 'Nama'},
                { data: 'NIP_lama', name: 'NIP_lama'},
                { data: 'NIP_baru', name: 'NIP_baru'},
                { data: 'TMT_CPNS', name: 'TMT_CPNS'},
                { data: 'TMT_PNS', name: 'TMT_PNS'},
                { data: 'TMT_gol_ruang', name: 'TMT_gol_ruang'},
                { data: 'master_golongan.golongan', name: 'master_golongan.golongan'},
                { data: 'master_jabatan.nama_jabatan', name: 'master_jabatan.nama_jabatan'},
                { data: 'edit', name: 'edit', orderable: false, searchable: false},
                { data: 'hapus', name: 'hapus', orderable: false, searchable: false},

            ],
        });
    })
    $('.delete-form').submit(function(event){
      if(!confirm('Anda yakin mau menghapus item ini ?')){
          event.preventDefault();
      }
  });
</script>

@endpush

为什么这个确认消息是空的?

标签: javascriptlaravel

解决方案


您的第一次尝试问题似乎是转义引号“和”。尝试将您的消息放在双引号“”内。这应该可以解决您的问题

<button style='margin-left:10px; width: 30px;' type='submit'
            class='btn btn-xs btn-danger delete' onclick='return 
            confirm("do you want to delete this data ?")'>
            <i class='glyphicon glyphicon-remove-circle'></i>
        </button>

推荐阅读