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

657
Visualizações
Mostrar alerta de JavaScript después de enviar el formulario - Django

Estoy tratando de mostrar una alerta si el formulario enviado es válido o no.
En la vista, tengo una entrada oculta que cambia el valor si el formulario es válido o no.

Tengo este JavaScript:

 $( document ).ready(function() { if (document.registroForm.alert.value==1){ swal("¡Bien hecho!", "El registro fue exitoso.", "success") } if (document.registroForm.alert.value==0){ swal("¡Oops!", "Algo salió mal.", "error") } });

El problema es que recibo la alerta cada vez que actualizo la página.
Y solo quiero hacerlo cuando el usuario envíe el formulario y la página se actualice

Gracias.

El problema fue resuelto.

Lo que hice fue establecer la variable "alerta" en Ninguno en la carga de la página. que cambia después de enviar el formulario: (modifiqué esto en mi views.py)

vistas.py

 def registroUsuario(request): if request.method == "POST": form = registroForm(request.POST or None) if form.is_valid(): alert = 1 instance = form.save(commit=False) instance.is_active = False instance.save() else: alert = 0 else: alert = None form = registroForm() context = { "titulo": "Registrarse", "form": form, "alert": alert, } template = "micuenta/registro.html" return render(request, template, context)

y mi .html:

 <form method="POST" action="."> [... some labels and inputs ...] <input type="hidden" name="alert" value="{{alert}}" readonly> </form> <script> $( document ).ready(function() { if (document.registroForm.alert.value==1){ swal("¡Bien hecho!", "El registro fue exitoso.", "success") } if (document.registroForm.alert.value==0){ swal("¡Oops!", "Algo salió mal.", "error") } }); </script>

Por cierto, gracias.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

He usado algo como esto en el pasado.

 $( document ).ready(function() { $('#your-form').on('submit', function(e) { e.preventDefault(); if (document.registroForm.alert.value==1){ swal("¡Bien hecho!", "El registro fue exitoso.", "success"); return true; } else if (document.registroForm.alert.value==0){ swal("¡Oops!", "Algo salió mal.", "error") } }); });

Independientemente de cómo lo logre, creo que necesitará un detector de eventos para el envío del formulario y deshabilitará la publicación de forma predeterminada. A continuación, puede realizar su comprobación para un envío válido.

over 4 years ago · Santiago Trujillo Relatório

0

Puede usar una variable de bandera para controlarlo. Pasas la variable por la URL.

En tu botón:

 <button type="button" onclick="myFunction(1)">Submit</button>

En el guión de esta misma página:

 <script type="text/javascript"> function myFunction(value){ window.location = "page.html?myVariabel="+value; } </script>

En la página que desea verificar y mostrar el mensaje, puede usar esto:

 <script type="text/javascript"> var query = location.search.slice(1); var part = query.split('='); if(part[1] == 1){ //Your code } </script>
over 4 years ago · Santiago Trujillo Relatório

0

Lo que hice fue establecer la variable "alerta" en Ninguno en la carga de la página. que cambia después de enviar el formulario: (modifiqué esto en mi views.py)

vistas.py

 def registroUsuario(request): if request.method == "POST": form = registroForm(request.POST or None) if form.is_valid(): alert = 1 instance = form.save(commit=False) instance.is_active = False instance.save() else: alert = 0 else: alert = None form = registroForm() context = { "titulo": "Registrarse", "form": form, "alert": alert, } template = "micuenta/registro.html" return render(request, template, context)

y mi .html:

 <form method="POST" action="."> [... some labels and inputs ...] <input type="hidden" name="alert" value="{{alert}}" readonly> </form> <script> $( document ).ready(function() { if (document.registroForm.alert.value==1){ swal("¡Bien hecho!", "El registro fue exitoso.", "success") } if (document.registroForm.alert.value==0){ swal("¡Oops!", "Algo salió mal.", "error") } }); </script>

Por cierto, gracias.

over 4 years ago · Santiago Trujillo Relatório
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