Guía 52 – Utilización de «sweetalert2» para confirmar «salvar» datos (Actualización)

Esta solución, en su versión anterior no se controlaban las validaciones de los campos y resultaba chocante el que apareciera el «Alert» de diálogo y que luego dijera que no había validado los datos y por ello, no había actualizado el registro.

En esta versión se resuelve esto validando uno a uno, los campos del formulario.

El código ha quedado de esta forma:

/* Validation fields */

var fields = ['text1','number1'];  // All fields to validate

var validation = true;
let i = 0;
while (i < fields.length) {
    var ctrl = Runner.getControl(pageid, fields[i]);
   var status = ctrl.validate();
   if (status.result == false) {
      validation = false;
   }
    i++;
}
console.log("validation: "+ validation);

if ( validation ) {
  Swal.fire({
    title: 'Do you want to save the changes?',
    showDenyButton: true,
    // showCancelButton: true,
    confirmButtonText: 'Save',
    denyButtonText: "Don't save",
    }).then((result) => {
    /* Read more about isConfirmed, isDenied below */
      if (result.isConfirmed) {
         Swal.fire('Saved!', '', 'success')
         // $('#saveButton7').click();
         $('a[id^="saveButton"]').click();

      } else { 
      if (result.isDenied) {
        Swal.fire('Changes are not saved', '', 'info') 
      }
    }
   })
}
return false

Creo que la solución, así, queda más consistente y válida.

Si deseas leer todo el artículo, sigue este link.