Добавить подтверждение (да, нет) в отправку с помощью preventDefault

#javascript #jquery

#javascript #jquery

Вопрос:

у меня есть отправка кода с помощью preventDefault. это мой код

  //submit terima barang
            $("form.form_terima").submit(function (event) {
                if (confirm('Submit Terima Barang ?')) {
                    $(".loader").show();
                    //disable tombol submit supaya tidak reload
                    event.preventDefault();
                    var formData = new FormData($(this)[0]);
                    $.ajax({
                        url: 'po_req/po_req_crud.php', //type='add_terima'
                        type: 'POST',
                        data: formData,
                        async: false,
                        cache: false,
                        contentType: false,
                        processData: false,
                        success: function (data) {
                            console.log(data);
                          //action if success
                        }
                    });
                    return false;
                }
            }); 

но это не работает. как это решить? спасибо, приятель 🙂

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

1. Как именно это не работает ?

Ответ №1:

В вашем коде event.preventDefault() он будет запускаться только тогда, когда пользователь нажмет «ОК» / «Да». Если пользователь нажал «Нет», то форма будет отправлена.

Вы должны добавить event.preventDefault() внешнюю часть if блока, чтобы он работал так, как вы ожидаете.

 $("form.form_terima").submit(function (event) {
    if (confirm('Submit Terima Barang ?')) {
        $(".loader").show();
         //disable tombol submit supaya tidak reload
         var formData = new FormData($(this)[0]);
         $.ajax({
            url: 'po_req/po_req_crud.php', //type='add_terima'
            type: 'POST',
            data: formData,
            async: false,
            cache: false,
            contentType: false,
            processData: false,
            success: function (data) {
                console.log(data);
                //action if success
            }
        });
    }

    // prevent default regardless of user's response
    event.preventDefault();
    return false;
});
 

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

1. Спасибо, Iblamefish, это работа, пока я submit не забыл вставить <form></form> #lol. И ваше `event.preventDefault();`, помещенное снаружи if , полезно. большое спасибо