Как получить правильное значение от нажатия кнопки в массиве кнопок с тем же именем? - PullRequest
0 голосов
/ 03 мая 2018

Я работаю с laravel / ajax и хочу создать кнопку удаления для каждой строки в таблице содержимого. Таким образом, в моем foreach (на мой взгляд) я создаю кнопки удаления с тем же именем и разными значениями.

 <button value="{{$group->id}}" name="destroy"><i class="zmdi zmdi-delete zmdi-hc-fw"></i></button>

Теперь у меня есть вызов jquery ajax:

 $('button[name="destroy"]').on('click', function(e) {

    swal({
        title: "Are you sure?",
        text: "Once you delete this row, you can not rollback it",
        type: "warning",
        showCancelButton: true,
        buttonsStyling: false,
        confirmButtonColor: '#dd394a',
        confirmButtonText: 'Yes, I am sure!',
        cancelButtonText: "No, cancel it!",
        background: 'rgba(0, 0, 0, 0.96)',
        confirmButtonClass: 'btn btn-sm btn-light',
    }).then(function() {

        $.ajax({

            url: 'Groupe/destroy/'+ $('button[name="destroy"]').trigger('change').val(),
            type: 'POST',

            success: function(data)
            {
                $('.modal-content').html(data);
            }
        });
    });
});

После этого каждое нажатие кнопки (когда я пишу предупреждение в моей успешной части с помощью $ ('button [name = "destroy"]'). Trigger ('change'). Val ()) сначала возвращает то же самое значение, похоже, что он всегда читает значение с первой кнопки в строке и повторяет его для всех остальных. (В элементе проверки каждая кнопка имеет свой идентификатор). Что мне не хватает? Спасибо

1 Ответ

0 голосов
/ 03 мая 2018

.on( 'click', handler ) имеет значение в this.value, соответствующее нажатой кнопке.

Попробуйте это:

    $('button[name="destroy"]').on('click', function (e) {

        var btnValue = this.value;

        swal({
            title: "Are you sure?",
            text: "Once you delete this row, you can not rollback it",
            type: "warning",
            showCancelButton: true,
            buttonsStyling: false,
            confirmButtonColor: '#dd394a',
            confirmButtonText: 'Yes, I am sure!',
            cancelButtonText: "No, cancel it!",
            background: 'rgba(0, 0, 0, 0.96)',
            confirmButtonClass: 'btn btn-sm btn-light',
        }).then(function () {

            $.ajax({

                url: 'Groupe/destroy/' + btnValue,
                type: 'POST',

                success: function (data) {
                    $('.modal-content').html(data);
                }
            });
        });
    });
...