Как использовать Jquery для добавления / удаления кнопок?

#javascript #jquery #laravel

#javascript #jquery #laravel

Вопрос:

я хочу кое-что спросить, как добавить кнопку для добавления новой строки в таблицу, используя Jquery , и если добавлена новая строка, в первой строке изменена на кнопку удаления. и пользователь может удалять каждую строку.

Я хочу создать отчет, в котором есть ежедневный отчет.

я хочу сделать так, чтобы в ежедневном отчете была кнопка добавления и удаления. который позже будет сохранен в виде отчета в формате PDF с использованием DomPDF.

 <div class="card-body">
    <div class="table-responsive">
    @csrf
    <table class="table table-striped table-bordered dt-responsive" id="tb">
        <thead class="thead-dark ">
            <tr>
                <th class="align-middle text-center" style="width:23%">Date</th>
                <th class="align-middle text-center" style="width:10%">Start</th>
                <th class="align-middle text-center" style="width:10%">Finish</th>
                <th class="align-middle text-center" style="width:20%">Title</th>
                <th class="align-middle text-center" style="width:32%">Description</th>
                <th class="align-middle text-center" style="width:5%">Action</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td class="align-middle text-center" ><input type="text" name="tb_tanggal" id="tb_tanggal" class="form-control input-lg datepicker" placeholder="25 Januari 2021"></td>
                <td class="align-middle text-center" ><input type="text" name="tb_mulai" id="tb_mulai" class="form-control input-lg timepicker" placeholder="08:00" ></td>
                <td class="align-middle text-center" ><input type="text" name="tb_selesai" id="tb_selesai" class="form-control input-lg timepicker" placeholder="17:00"></td>
                <td class="align-middle" ><input type="text" name="tb_judul" id="tb_judul" class="form-control input-lg" placeholder="Judul Laporan"></td>
                <td class="align-middle" ><textarea type="text" name="tb_desc" id="tb_desc" class="form-control" rows="3"  style="resize: none;"></textarea></td>
                <td class="align-middle text-center" ><a href="#" class="btn btn-danger cyan btn-block"> <i class="zmdi zmdi-window-minimize"></i></a></td>
            </tr>
            <tr>
                <td class="align-middle text-center" ><input type="text" name="tb_tanggal" id="tb_tanggal" class="form-control input-lg datepicker" placeholder="25 Januari 2021"></td>
                <td class="align-middle text-center" ><input type="text" name="tb_mulai" id="tb_mulai" class="form-control input-lg timepicker" placeholder="08:00" ></td>
                <td class="align-middle text-center" ><input type="text" name="tb_selesai" id="tb_selesai" class="form-control input-lg timepicker" placeholder="17:00"></td>
                <td class="align-middle" ><input type="text" name="tb_judul" id="tb_judul" class="form-control input-lg" placeholder="Judul Laporan"></td>
                <td class="align-middle" ><textarea type="text" name="tb_desc" id="tb_desc" class="form-control" rows="3"  style="resize: none;"></textarea></td>
                <td class="align-middle text-center" ><a href="#" class="btn btn-danger cyan btn-block"> <i class="zmdi zmdi-window-minimize"></i></a></td>
            </tr>
            <tr>
                <td class="align-middle text-center" ><input type="text" name="tb_tanggal" id="tb_tanggal" class="form-control input-lg datepicker" placeholder="25 Januari 2021"></td>
                <td class="align-middle text-center" ><input type="text" name="tb_mulai" id="tb_mulai" class="form-control input-lg timepicker" placeholder="08:00" ></td>
                <td class="align-middle text-center" ><input type="text" name="tb_selesai" id="tb_selesai" class="form-control input-lg timepicker" placeholder="17:00"></td>
                <td class="align-middle" ><input type="text" name="tb_judul" id="tb_judul" class="form-control input-lg" placeholder="Judul Laporan"></td>
                <td class="align-middle" ><textarea type="text" name="tb_desc" id="tb_desc" class="form-control" rows="3"  style="resize: none;"></textarea>{{ old('') }}</td>
                <td class="align-middle text-center" ><a href="#" class="btn btn-success cyan btn-block"> <i class="zmdi zmdi-plus"></i></a></td>
            </tr>
        </tbody>
    </table>
    </div>
</div>
 

форма таблицы:
введите описание изображения здесь

Ответ №1:

Добавьте общий класс ‘delete-row-btn’ ко всем кнопкам удаления

 // Delete row on delete button click
    $(document).on('click', '.delete-row-btn', function (e) {
        $(this).closest('tr').remove()
    });
 

также добавьте общий класс ‘add-row-btn’ ко всем кнопкам plus

 // add new row on plus button click and change this button to delete button
$(document).on('click', '.add-row-btn', function (e) {
    // add new row
    $('#tb').append('<tr><td>..</td><td>..</td><td>..</td><td>..</td></tr>');

    //change this plus btn to delete button
    $(this).closest('td').html('<a href="#" class="btn btn-danger cyan btn-block delete-row-btn"><i class="zmdi zmdi-window-minimize"></i></a>')
});
 

Html-содержимое строки необходимо ввести внутри функции «добавить»

Комментарии:

1. все еще не удается добавить / удалить с помощью кнопки. вот код pastebin.com/AbEsT9bP

2. пожалуйста, скажите мне, отображаются ли какие-либо ошибки консоли

3. ошибки нет. но когда я нажимаю на него, ничего не могу сделать (добавить / удалить). ни с помощью тега привязки, ни тега кнопки.

4. или, может быть, я получил ошибку в цикле prnt.sc/zl0btt . я просто нажимаю один раз, и затем он показывает 16 данных. Я хочу создать отчет, в котором есть ежедневный отчет. я хочу сделать так, чтобы в ежедневном отчете была кнопка добавления и удаления. который позже будет сохранен в виде отчета в формате PDF с использованием DomPDF.