Используя диалоговое окно, дождитесь ответа и затем сохраните (или нет) данные - jquery - PullRequest
0 голосов
/ 14 апреля 2020

У меня есть диалог, который проверяет, действительно ли пользователь хочет сохранить данные, когда транспортное средство превышает километры в параметрах. Диалог отображается в нужный момент, но код продолжается и сохраняет данные, прежде чем пользователь скажет «да» или «нет» этой опции.

Я поместил код ниже:

if(vehicleIDkm > 0){                                    
                                        //Instrucciones para comprobar si no supera la media de kilometros del vehiculo
                                        $.ajax({
                                            url: "getVehicleKMmax.json?vehicleId=" + vehicleIDkm,
                                            method: 'GET',
                                            dataType: "json",
                                            async: false,
                                            contentType: 'application/json',
                                            success: function(kmMaxVehicle){
                                                if(kilometrosLlegada - kilometrosSalida > kmMaxVehicle){
                                                    // Abrir la ventana para informar y pedir confirmacion      
                                                    $("#dialog-activity-data-confirm").dialog({
                                                        resizable: false,
                                                        height: 300,
                                                        width: 400,
                                                        modal: true,
                                                        async: false,
                                                        dialogClass: "confirmDialogClass",
                                                        title: "Exceso de kilómetros",
                                                        open: function() {
                                                          var markup = 'Ha excedido la cantidad de kilometros a realizar en un dia por este vehiculo, ¿quiere guardar la producción igualmente? De ser así, pulse en continuar, si no, cierre esta ventana.';
                                                          $(this).html(markup);
                                                        },
                                                        buttons:
                                                        [
                                                            {
                                                                text: "Continuar",
                                                                "class": "buttonTextDelete roundedButton roundedButtonAccent confirmBG",
                                                                click: function() {
                                                                    sePuedeGuardar = true;
                                                                    noSePuedeGuardarPorKilometros = false;
                                                                    $(this).dialog('close');
                                                                }
                                                            }   
                                                        ],
                                                        close: function() { 
                                                            sePuedeGuardar = false;
                                                            noSePuedeGuardarPorKilometros = true;
                                                        }
                                                    });
                                                }                                               
                                            },
                                            error: function(error){
                                                console.log("Se ha producido un error al comprobar si es festivo el día.");
                                            }
                                        });
                                    }



                                    if(sePuedeGuardar){
                                        // Guardamos los datos
                                        $.ajax({
                                            type: "POST",
                                            url: finalUrl,
                                            ...
                                            ...
                                            ...

Как видите, я использую переменную "sePuedeGuardar", чтобы проверить, можете ли вы сохранить или нет данные, но это всегда go в что если, независимо от того, является ли это истиной или ложью, потому что это происходит там, прежде чем пользователь ответит на вопрос диалога.

Может кто-нибудь помочь мне? Спасибо!

...