Foros del Web » Programando para Internet » Javascript »

No me ejecuta el POST

Estas en el tema de No me ejecuta el POST en el foro de Javascript en Foros del Web. Hola a todos, tengo un pequeño código de validación de formulario, anda bien al validar, pero una vez validado no me redirige al POST. dejo ...
  #1 (permalink)  
Antiguo 06/07/2021, 16:32
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 871
Antigüedad: 15 años
Puntos: 7
Pregunta No me ejecuta el POST

Hola a todos, tengo un pequeño código de validación de formulario, anda bien al validar, pero una vez validado no me redirige al POST.

dejo mi código.


HTML
Código HTML:
Ver original
  1. <form action="PrimerPost.php" method="POST"  id="form">
  2. <div class="container fondo">
  3. <div class="row">
  4. <div class="mb-3 fondo">
  5.  
  6.   <label  class="form-label"><b>Nombre Completo</b></label>
  7.   <input type="tetx" class="form-control" id="name" name="cl_NomCompleto"  placeholder="Nombre Completo">
  8. </div>
  9.  
  10. <div class="mb-3">
  11.   <label  class="form-label"><b>DNI</b></label>
  12.   <input type="text" class="form-control" id="cldne" name="cl_DnIE" placeholder="Su DNI">
  13. </div>
  14. <br>
  15.  
  16. <br>
  17. </div>
  18.  
  19. <button type="submit" type="button" class="btn btn-success">Seguir</button>
  20. <p class="warnings" id="warnings"></p>
  21. </form>
  22. <br>
  23. <script src="index.js"></script>

Código javascript
Código Javascript:
Ver original
  1. const nombre = document.getElementById("name")
  2. const cldne = document.getElementById("cldne")
  3. const form = document.getElementById("form")
  4. const parrafo =document.getElementById("warnings")
  5.  
  6.     form.addEventListener("submit", e=>{
  7.         e.preventDefault()
  8.         let warnings =""
  9.         parrafo.innerHTML=""
  10.         if(nombre.value.length <4){
  11.            
  12.             warnings +=`El nombre es muy corto <br>`
  13.             entrar= true
  14.         }
  15.  
  16.         if(cldne.value.length<8){
  17.             warnings +=`El nombre es muy corto <br>`
  18.             entrar= true
  19.         }
  20.         if(entrar){
  21.             parrafo.innerHTML= warnings
  22.         }else{
  23.        
  24.             this.submit();
  25.    
  26.         }
  27.      
  28.     })

Gracias por su tiempo.
Saludos a todos.!!
  #2 (permalink)  
Antiguo 06/07/2021, 19:00
 
Fecha de Ingreso: abril-2011
Mensajes: 169
Antigüedad: 11 años, 4 meses
Puntos: 68
Respuesta: No me ejecuta el POST

Tienes dos errores bastante sutiles, sobre todo el segundo.

1) La variable entrar no la estás declarando en ningún lugar. Debes declarar la variable entrar localmente (es decir, dentro de la función) e iniciarla a false. De esta forma, cada vez que se dispare el evento submit del formulario, la variable comenzará en false y cambiará a true si se cumple alguna de esas dos condiciones.

2) Las Arrow Functions de ES6 no son solamente una abreviación de las funciones normales, tienen algunas peculiaridades más, como por ejemplo, utilizan el this léxico. Aquí hay una explicación a fondo. La solución es usar funciones normales en este caso.

El código corregido resulta:

Código Javascript:
Ver original
  1. const nombre = document.getElementById("name")
  2. const cldne = document.getElementById("cldne")
  3. const form = document.getElementById("form")
  4. const parrafo = document.getElementById("warnings")
  5.  
  6. form.addEventListener("submit", function(e){
  7.   var entrar = false; // declarar e inicializar variable
  8.  
  9.   e.preventDefault()
  10.   let warnings = ""
  11.   parrafo.innerHTML = ""
  12.   if(nombre.value.length < 4){
  13.  
  14.     warnings +=`El nombre es muy corto <br>`
  15.     entrar= true
  16.   }
  17.  
  18.   if(cldne.value.length < 8){
  19.     warnings +=`El nombre es muy corto <br>`
  20.     entrar= true
  21.   }
  22.   if(entrar){
  23.     parrafo.innerHTML= warnings
  24.   }else{
  25.     this.submit();
  26.   }
  27.  
  28. })

  #3 (permalink)  
Antiguo 07/07/2021, 11:04
Avatar de fedefrankk  
Fecha de Ingreso: agosto-2007
Mensajes: 871
Antigüedad: 15 años
Puntos: 7
De acuerdo Respuesta: No me ejecuta el POST

Hola Muchas gracias.!!! por tu solución, realmente muy bueno anda de 10.!!
se agradece tu tiempo de explicarme.
Muchas gracias.

Saludos cordiales

Etiquetas: ejecuta, formulario, post
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:10.