JavaScript - PROBLEMA BULEANO DE FORMULARIO CON JQUERY

 
Vista:

PROBLEMA BULEANO DE FORMULARIO CON JQUERY

Publicado por Florencia (4 intervenciones) el 16/06/2019 21:06:01
Hola!
Tengo un problema con jquery ya que quiero que al apretar un boton de submit de un formulario se abra una pantalla de agradecimiento, mi consulta es ¿que estoy poniendo mal? ya que quiero que los campos a completar sean obligatorios, pero a pesar que no los complete al apretar el boton submit te lleva al popup igual.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<script>
 
function validaForm(){
 
     if($("#nombre").val() == ""){
            alert("El campo Nombre no puede estar vacío.");
            $("#nombre").focus();
            return false;
        }
        if($("#email").val() == ""){
            alert("El campo Email no puede estar vacío.");
            $("#email").focus();
            return false;
        }
        if($("#localidad").val() == ""){
            alert("El campo Localidad no puede estar vacío.");
            $("#localidad").focus();
            return false;
        }
 
    else {
      return true; }
 
    }
 
$(document).ready(function(){
   if(validaForm()===true){
$('#enviar').on('click', function (e) {
   e.preventDefault();
          var localidad= $("#localidad").val();
             $('#modal-overlay, #overlay-wrapper').fadeIn(500);
          }); } else {
            return false;
          }
 
  $('#close').on('click', function () {
    $('#modal-overlay, #overlay-wrapper').fadeOut(500);
});
});
 
</script>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Billy Joel
Val: 8
Ha disminuido su posición en 25 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

PROBLEMA BULEANO DE FORMULARIO CON JQUERY

Publicado por Billy Joel (3 intervenciones) el 18/06/2019 13:54:54
El error lo tenías en la lógica de validación. Estabas validando antes de preionar el botón, cuando se debe validar despues de presionar el botón. Acá te lo dejo corregido:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<script>
    function validaForm() {
        if ($("#nombre").val() === "") {
            alert("El campo Nombre no puede estar vacío.");
            $("#nombre").focus();
            return false;
        } else if ($("#email").val() === "") {
            alert("El campo Email no puede estar vacío.");
            $("#email").focus();
            return false;
        } else if ($("#localidad").val() === "") {
            alert("El campo Localidad no puede estar vacío.");
            $("#localidad").focus();
            return false;
        } else {
            return true;
        }
    }
 
    $(document).ready(function () {
        /*if (validaForm() === true) {
            $('#enviar').on('click', function (e) {
                e.preventDefault();
                var localidad = $("#localidad").val();
                $('#modal-overlay, #overlay-wrapper').fadeIn(500);
            });
        } else {
            return false;
        }*/
 
        $('#enviar').on('click', function (e) {
            e.preventDefault();
            if (validaForm()) {
                var localidad = $("#localidad").val();
                $('#modal-overlay, #overlay-wrapper').fadeIn(500);
            }
        });
 
        $('#close').on('click', function () {
            $('#modal-overlay, #overlay-wrapper').fadeOut(500);
        });
    });
 
</script>

Saludos,
Billy Joel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PROBLEMA BULEANO DE FORMULARIO CON JQUERY

Publicado por Florencia (4 intervenciones) el 18/06/2019 14:30:39
Hola! Muchas gracias por responder ! Probé lo que me dijiste y sigue haciendo lo mismo, podrá ser que tenga algo mal en el html del <form>? Funciona el botón enviar y me lleva al popup pero no obliga a completar los campos, y si obliga completarlos no me va al popup despues, dice url desconocida, gracias de nuevo!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 8
Ha disminuido su posición en 25 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

PROBLEMA BULEANO DE FORMULARIO CON JQUERY

Publicado por Billy Joel (3 intervenciones) el 18/06/2019 15:19:47
Podrías mostrar el código HTML completo para ver qué es lo que está mal
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

PROBLEMA BULEANO DE FORMULARIO CON JQUERY

Publicado por Florencia (4 intervenciones) el 18/06/2019 16:29:30
Este es el archivo html completo, dentro está todo lo de jquery y el formulario

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
<!DOCTYPE html>
<html lang="en">
 
<head>
  <!-- Basic Page Needs
  –––––––––––––––––––––––––––––––––––––––––––––––––– -->
 <meta charset="utf-8">
 <title>SIMILAR LANDING PAGE</title>
  <meta name="description" content="">
  <meta name="author" content="">
 
  <!-- Mobile Specific Metas
  –––––––––––––––––––––––––––––––––––––––––––––––––– -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
 
  <!-- FONT
   –––––––––––––––––––––––––––––––––––––––––––––––––– -->
   <link href="//fonts.googleapis.com/css?family=Raleway:400,300,600" rel="stylesheet" type="text/css">
 
   <link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/skeleton.css">
<link rel="stylesheet" href="css/css.css">
 
 
 
 
 
 
 
  <script src= "http://code.jquery.com/jquery.js"></script>
 
<div id="grad1"></div>
 
<div id="logo">
<img src="imagenes/logo.png" class="rounded mx-auto d-block" alt="Responsive image" width="100%" >
</div>
 
<div class contenedor>
  <div id= "linea">
<img src="imagenes/linea.png" class="rounded mx-auto d-block" alt=".responsive image"  width="100%"  >
</div>
<h1>  COMPLETÁ LOS DATOS Y RECIBÍ UNA CANCIÓN
   ALEATORIA DE NUESTRO NUEVO ALBUM
   'FANZINE'
  ANTES DEL LANZAMIENTO OFICIAL </h1>
 
 
  <form id= "formulario" action="/action_page.php">
 
 
    <div class="row">
      <div class="col-25">
    <label for="fname">Nombre</label>
    </div>
      <div class="col-75">
      <input type="text" id="col-25 nombre" name="Nombre"  class="removeLater" required:"required" data-validation="length alphanumeric" data-validation-length="min4" placeholder="Ingresá tu nombre">
    </div>
  </div>
 
 
  <div class="row">
    <div class="col-25">
      <label for="lname">E-mail</label>
    </div>
      <div class="col-75">
      <input type="text" id="col-25 email" name="Email"  class="removeLater" required:"required" data-validation="length alphanumeric" data-validation-length="min4" placeholder="Ingresá tu email">
    </div>
  </div>
 
  <div class="row">
    <div class="col-25">
   <label for="lname">Localidad</label>
 </div>
   <div class="col-75">
      <input type="text" id="col-25 localidad" name="localidad"   class= "removeLater"  required:"required" data-validation="length alphanumeric" data-validation-length="min4" placeholder="Ingresá tu localidad">
    </div>
  </div>
 
 
<a> <input type="submit"  id="enviar" href="#" value="Enviar" > </a>
</form>
 
 
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-form-validator/2.3.26/jquery.form-validator.min.js"> </script>
 
<script>
    function validaForm() {
        if ($("#nombre").val() === "") {
            alert("El campo Nombre no puede estar vacío.");
            $("#nombre").focus();
            return false;
        } else if ($("#email").val() === "") {
            alert("El campo Email no puede estar vacío.");
            $("#email").focus();
            return false;
        } else if ($("#localidad").val() === "") {
            alert("El campo Localidad no puede estar vacío.");
            $("#localidad").focus();
            return false;
        } else {
            return true;
        }
    }
 
    $(document).ready(function () {
    $('#enviar').on('click', function (e) {
            e.preventDefault();
            if (validaForm()) {
                var localidad = $("#localidad").val();
                $(".removeLater").val('');
                $('#modal-overlay, #overlay-wrapper').fadeIn(500);
            }
        });
 
        $('#close').on('click', function () {
            $('#modal-overlay, #overlay-wrapper').fadeOut(500);
        });
    });
 
</script>
</script>
 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
 
<div id="modal-overlay">
  <p> YA ESTAMOS ELIGIENDO QUE CANCION MANDARTE!</p>
  <div id="logo2">
<img src="imagenes/logo.png" class="rounded mx-auto d-block" alt="Responsive image" width="10%" >
</div>
<p> No te olvides de revisar tu mail y compartir la canción con el hashtag #FANZINE </p>
<p> Se el primero en encontrar los 10 nombres de las canciones y ganar un montón de premios </p>
 
</div>
<div id="overlay-wrapper">
 
<div id="cerrar">
  <a> <input type="submit" id="close" href="#" value="Aceptar"></a>
</div>
</div>
 
 
  <h2> SUBILA CON EL HASHTAG #FANZINE
     Y ESCUCHÁ LOS TEMAS QUE RECIBIERON OTROS OYENTES.
LA PRIMERA PERSONA QUE CONSIGA LOS 1O NOMBRES
 GANA ENTRADAS PARA NUESTRA GIRA Y MUCHAS COSAS MÁS </h2>
 
<div id= "redes">
   <img src="imagenes/redes.png" class="rounded mx-auto d-block" alt=".responsive image" width=5% >
</div>
 
 
<div id= "lineas">
<img src="imagenes/linea.png" class="rounded mx-auto d-block" alt=".responsive image" width=100%  >
</div>
</div>
 
 
  <h3>LANZAMIENTO DE 'FANZINE' </h3>
  <div id="portada"> <img src="imagenes/portada.png" class="rounded mx-auto d-block" alt=".responsive image" width=50%  > </div>
 
<div id= "cuenta">
<script language="JavaScript">
 
TargetDate = "JUL/4/2019 12:00 AM/PM UTC+0100";
BackColor = "transparent";
ForeColor = "white";
CountActive = true;
CountStepper = -1;
LeadingZero = true;
DisplayFormat = "%%D%% Días, %%H%% Horas, %%M%% Minutos, %%S%% Segundos";
FinishMessage = "YA DISPONIBLE EN SPOTIFY Y YOUTUBE";
</script>
<script language="JavaScript" src="http://scripts.hashemian.com/js/countdown.js"></script>
</div>
 
 
 
</body>
 
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Billy Joel
Val: 8
Ha disminuido su posición en 25 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

PROBLEMA BULEANO DE FORMULARIO CON JQUERY

Publicado por Billy Joel (3 intervenciones) el 18/06/2019 18:35:37
Los id son para identificar a los elementos dentro del documento....
dicho esto lo he corregido un poco. Tienes un contador que no sirve y no se por que... He puesto otro que si funciona.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<!DOCTYPE html>
<html lang="en">
    <head>
        <!-- Basic Page Needs
        –––––––––––––––––––––––––––––––––––––––––––––––––– -->
        <meta charset="utf-8">
        <title>SIMILAR LANDING PAGE</title>
        <meta name="description" content="">
        <meta name="author" content="">
 
        <!-- Mobile Specific Metas
        –––––––––––––––––––––––––––––––––––––––––––––––––– -->
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
 
        <!-- FONT
        –––––––––––––––––––––––––––––––––––––––––––––––––– -->
        <link href="//fonts.googleapis.com/css?family=Raleway:400,300,600" rel="stylesheet" type="text/css">
        <link rel="stylesheet" href="css/normalize.css">
        <link rel="stylesheet" href="css/skeleton.css">
        <link rel="stylesheet" href="css/css.css">
    </head>
    <body>
        <div id="grad1"></div>
 
        <div id="logo">
            <img src="imagenes/logo.png" class="rounded mx-auto d-block" alt="Responsive image" width="100%" >
        </div>
 
        <div class="contenedor">
            <div id= "linea">
                <img src="imagenes/linea.png" class="rounded mx-auto d-block" alt=".responsive image" width="100%" >
            </div>
            <h1> COMPLETÁ LOS DATOS Y RECIBÍ UNA CANCIÓN
                ALEATORIA DE NUESTRO NUEVO ALBUM
                'FANZINE'
                ANTES DEL LANZAMIENTO OFICIAL </h1>
 
 
            <form id= "formulario" action="/action_page.php">
                <div class="row">
                    <div class="col-25">
                        <label for="fname">Nombre</label>
                    </div>
                    <div class="col-75">
                        <input type="text" id="nombre" name="Nombre" class="removeLater" required:"required" data-validation="length alphanumeric" data-validation-length="min4" placeholder="Ingresá tu nombre">
                    </div>
                </div>
 
                <div class="row">
                    <div class="col-25">
                        <label for="lname">E-mail</label>
                    </div>
                    <div class="col-75">
                        <input type="text" id="email" name="Email" class="removeLater" required:"required" data-validation="length alphanumeric" data-validation-length="min4" placeholder="Ingresá tu email">
                    </div>
                </div>
 
                <div class="row">
                    <div class="col-25">
                        <label for="lname">Localidad</label>
                    </div>
                    <div class="col-75">
                        <input type="text" id="localidad" name="localidad" class= "removeLater" required:"required" data-validation="length alphanumeric" data-validation-length="min4" placeholder="Ingresá tu localidad">
                    </div>
                </div>
                <input type="submit" id="enviar" value="Enviar" >
            </form>
 
            <div id="modal-overlay">
                <p> YA ESTAMOS ELIGIENDO QUE CANCION MANDARTE!</p>
                <div id="logo2">
                    <img src="imagenes/logo.png" class="rounded mx-auto d-block" alt="Responsive image" width="10%" >
                </div>
                <p> No te olvides de revisar tu mail y compartir la canción con el hashtag #FANZINE </p>
                <p> Se el primero en encontrar los 10 nombres de las canciones y ganar un montón de premios </p>
            </div>
            <div id="overlay-wrapper">
                <div id="cerrar">
                    <input type="button" id="close" value="Cerrar">
                </div>
            </div>
 
 
            <h2> SUBILA CON EL HASHTAG #FANZINE
                Y ESCUCHÁ LOS TEMAS QUE RECIBIERON OTROS OYENTES.
                LA PRIMERA PERSONA QUE CONSIGA LOS 1O NOMBRES
                GANA ENTRADAS PARA NUESTRA GIRA Y MUCHAS COSAS MÁS </h2>
 
            <div id= "redes">
                <img src="imagenes/redes.png" class="rounded mx-auto d-block" alt=".responsive image" width=5% >
            </div>
 
 
            <div id= "lineas">
                <img src="imagenes/linea.png" class="rounded mx-auto d-block" alt=".responsive image" width=100% >
            </div>
        </div>
 
 
        <h3>LANZAMIENTO DE 'FANZINE': <i id="contador"></i></h3>
 
        <div id="portada">
            <img src="imagenes/portada.png" class="rounded mx-auto d-block" alt=".responsive image" width=50% >
        </div>
 
        <div id= "cuenta">
            <script>
                TargetDate = "JUL/4/2019 12:00 AM/PM UTC+0100";
                BackColor = "transparent";
                ForeColor = "white";
                CountActive = true;
                CountStepper = -1;
                LeadingZero = true;
                DisplayFormat = "%%D%% Días, %%H%% Horas, %%M%% Minutos, %%S%% Segundos";
                FinishMessage = "YA DISPONIBLE EN SPOTIFY Y YOUTUBE";
            </script>
            <script src="http://scripts.hashemian.com/js/countdown.js"></script>
        </div>
 
        <!--script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script-->
        <script src= "http://code.jquery.com/jquery.js"></script>
        <script src="//cdnjs.cloudflare.com/ajax/libs/jquery-form-validator/2.3.26/jquery.form-validator.min.js"></script>
        <script src="//cdn.rawgit.com/hilios/jQuery.countdown/2.2.0/dist/jquery.countdown.min.js"></script>
        <script>
                $(document).ready(function () {
                    $("#modal-overlay").hide();
                    $("#overlay-wrapper").hide();
                    /*$('#enviar').on('click', function (e) {*/
                    $("#formulario").submit(function (e) {
                        e.preventDefault();
                        if (validaForm()) {
                            var localidad = $("#localidad").val();
                            $(".removeLater").val("");
                            $("#modal-overlay").fadeIn(500);
                            $("#overlay-wrapper").fadeIn(500);
                        }
                    });
 
                    $('#close').on('click', function () {
                        $("#modal-overlay").slideUp(500);
                        $("#overlay-wrapper").slideUp(500);
                    });
 
                    // 15 days from now!
                    //var date = new Date(new Date().valueOf() + 15 * 24 * 60 * 60 * 1000);
                    var date = new Date(2019, 6, 4);
                    $("#contador").countdown(date, function (event) {
                        $(this).html(event.strftime('%D days %H:%M:%S'));
                    });
                });
 
                function validaForm() {
                    if ($("#nombre").val() === "") {
                        alert("El campo Nombre no puede estar vacío.");
                        $("#nombre").focus();
                        return false;
                    } else if ($("#email").val() === "") {
                        alert("El campo Email no puede estar vacío.");
                        $("#email").focus();
                        return false;
                    } else if ($("#localidad").val() === "") {
                        alert("El campo Localidad no puede estar vacío.");
                        $("#localidad").focus();
                        return false;
                    } else {
                        return true;
                    }
                }
        </script>
    </body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

PROBLEMA BULEANO DE FORMULARIO CON JQUERY

Publicado por florencia (4 intervenciones) el 19/06/2019 23:21:44
Mil gracias!!! Me funciono perfecto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar