Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

192
Visualizações
Después de volver a cargar el navegador, el evento window.beforeunload aún muestra la alerta de confirmación cuando intenta existir la página

En mi aplicación existen algunos formularios de creación de actualizaciones. Cuando el usuario ingresa valores en el campo de entrada de estos formularios accidentalmente si el usuario presiona el botón Atrás o el botón de recarga del navegador, aparecerá un mensaje de confirmación. He usado el evento 'window.beforeunload' para mostrar la alerta. La alerta está apareciendo bien. Pero hay un problema al que me enfrento. Escenario 1: A veces, la alerta aparece cuando no se ha producido ningún cambio en el campo de entrada y se vuelve a cargar el navegador o se pulsa el botón Atrás. Escenario 2: supongamos que el usuario ingresó algún valor en el campo de entrada y vuelve a cargar el mensaje de confirmación del navegador. El usuario permite recargar la página. Después de recargar la página, si el usuario desea abandonar la página, aún aparece el mensaje de confirmación. No puedo entender por qué aparece el mensaje después de permitir que la página se vuelva a cargar. Estoy usando el siguiente código -

 $(document).ready(function(){ //ArrElem is an array which is holding the initial value of each field when the form open $('#dvModal').on('change paste', 'select,input,textarea', function (e) { if (typeof ArrElem != 'undefined') { for (var i = ArrElem.length; i--;) { if (ArrElem[i].indexOf($(this).attr('id')) >= 0) { if ($(this).attr('type') == "checkbox" && ($(this).is(":checked").toString() != ArrElem[i].split(',')[1])) { ischanged = true; } else if ($(this).attr('type') != "checkbox" && $(this).val() != ArrElem[i].split(',')[1]) { ischanged = true; } else ischanged = false; break; } } } else { if ($(this).val() != $(this).data('val')) { ischanged = true; } else ischanged = false; } }); }); /// Using this code to display the alert when click on back,reload button of the browser window.addEventListener("beforeunload", (e) => { if (ischanged) { e.returnValue = null; ischanged = false; return null; } });

Probablemente estoy cometiendo algún error. Si es así, sugiérame qué lógica incorrecta estoy usando aquí. Si existe algún otro enfoque, por favor sugiérame. Necesito implementar esta característica muy común en mi aplicación, pero tengo problemas.

Gracias por adelantado.

Soumen

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda