Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

107
Vistas
Espere x0popup en la función javascript

Creé un código javascript que se supone que valida un formulario HTML. Durante esta validación se supone que hay una ventana emergente (en caso de que algo en el formulario no sea correcto).

Esto se ve así:

 function validateDisks() { var hiddenInput = document.getElementById('erasureHost'); if(hiddenInput.value == "") { x0p({ title: "Host is required", text: "Please choose a host from the host list.", type: 'warning', buttons: [{ type: 'warning', text: 'Ok' }] }).then(function(data) { return false; }); } var checkedBoxes = getCheckedBoxes("diskCheck"); if(checkedBoxes == null) { return false; } else if(checkedBoxes.length < 4) { x0p({ title: "Few disks", text: "You must select at least 4 disks for Erasure Coding", type: 'warning', buttons: [{ type: 'warning', text: 'Ok' }] }).then(function(data) { return false; }); } [...]

Mi problema es que cuando se ejecuta la función x0p, el script no espera el .then y simplemente continúa con la validación. Sin embargo, cuando ocurre un error, se supone que se debe informar al Usuario y luego no se debe enviar el formulario, lo que se puede lograr si la return false .

Ya he probado lo siguiente:

 async function validateDisks() { var hiddenInput = document.getElementById('erasureHost'); if(hiddenInput.value == "") { var x = await x0p({ [...] }).then(function(data) { return false; }); }

¿Cómo puedo asegurarme de que .then(function(data){ se ejecuta realmente y el script espera a que el usuario haga clic en el botón en la ventana emergente?

EDITAR: Creo que podría ser el problema que onsubmit="return validateDisks()" no esperaría las Promesas. Como he intentado validar solo la primera entrada ( hiddenInput ) y el formulario se envía antes de que pueda hacer clic en mi ventana emergente.

Tal vez la solución sea no enviar el formulario mediante action="diskChoice.php" sino enviar el formulario a través de JavaScript como action="validateDisks() y enviar el formulario con jQuery.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda