JavaScript - No encuentro el error en el código jQuery. Agradecería su ayuda

 
Vista:
sin imagen de perfil
Val: 1
Ha aumentado su posición en 54 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

No encuentro el error en el código jQuery. Agradecería su ayuda

Publicado por Howard (1 intervención) el 09/05/2020 21:11:41
Tengo el siguiente problema, estoy tratando de validar 2 input de tipo date. Lo que sucede es que no hace nada. Puse un alert para ver si estaba recibiendo y me muestra un alert vacio. En la consola no me lanza ningun tipo de error, pero aun asi no hace nada. Estoy revisando el codigo desde ayer x la noche y no encuentro el error. No se porque alert($("#text_fecha_inicio").val()) no muestra nada, veo el codigo bien. Quisiera que le hecharan un vistazo y puedan indicarme donde esta el error. Pongo el codigo de HTML para k vean toda la secuencia del codigo y lo puedan traciar. Gracias de antemano.

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
/------------HTML--------------\\
<label>Cantidad de horas de los cursos imparidos en el exterior según:</label>
<div class="form-row">
    <div class="col-md-2 col-sm-12 form-group">
      <label for="text_fecha_inicio">Fecha de Inicio</label>
      <input type="date" class="form-control" id="text_fecha_inicio"> ç
      <div id="alerta_fecha_incorrecta" class="invalid-tooltip">Fecha Incorrecta</div>
      <div id="alerta_fecha_mal" class="invalid-tooltip">Las fechas están mal puestas</div>
    </div>
    <div class="col-md-2 col-sm-12 form-group">
      <label for="text_fecha_cierre">Fecha de Cierre</label>
      <input type="date" class="form-control" id="text_fecha_cierre">
      <div id="alerta_fecha_incorrecta2" class="invalid-tooltip">Fecha Incorrecta</div>
    </div>
</div>
<button type="button" class="btn btn-success align-bottom" id="btn_buscar_fecha">Buscar</button>
 
//-------------jQuery---------------\\
$("#btn_buscar_fecha").click(function(){
    alert($("#text_fecha_inicio").val()); //Esta alerta no mustra nungun valor.
    switch(validarDate( $("#text_fecha_inicio"), $("#text_fecha_cierre") )){
        case 0: $("#alerta_fecha_inicio").hide();
                $("#alerta_fecha_cierre").hide();
                return true;
                break;
        case 1: $("#alerta_fecha_inicio").show();
                break;
        case 2: $("#alerta_fecha_cierre").show();
                break;
        case 3: $("#alerta_fecha_incorrecta").show();
        default: alert("Hay un error"); //Esta alerta es para ver si el switch trabaja.
                break;
    }
})
 
//-----------Funciones Generales-----------\\
 
function validarDate(date1, date2) {
    var cont = "";
    if (date1.val('')) {
        date1.addClass("is-invalid");
        date1.focus();
        cont = 1;
    } else {
        cont = "";
    }
    if (date2.val('')) {
        date2.addClass("is-invalid");
        date2.focus();
        cont = 2;
    } else {
        cont = "";
    }
    if (date2.val() < date1.val()) {
        date1.addClass("is-invalid");
        date2.addClass("is-invalid");
        date1.focus();
        cont = 3;
    }else{
        date1.removeClass("is-invalid");
        date2.removeClass("is-invalid");
        date1.val('');
        date2.val('');
        cont = 0;
    }
 
    return cont;
}
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 Annonymous
Val: 28
Ha aumentado su posición en 2 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

No encuentro el error en el código jQuery. Agradecería su ayuda

Publicado por Annonymous (7 intervenciones) el 09/05/2020 22:43:22
Buenas ! en un principio fijate dentro de los if cuando validas estas haciendo algo como

1
if(date2.val(''))

Le estas asignando el valor vacio al elemento no preguntando si es vacio, deberias hacer algo como

1
if(date2.val() == "")


Por otro lado te invito a que vuelvas a analizar la logica de tu validacion ya que por dar un ejemplo:
Supongamos el caso que el primer campo este vacio
* El primer if va a analizar "Esta vacio el campo 1" -> SI entonces asigno a cont 1 y agrego "is-invalid"
* El segundo if analiza "Esta vacio el campo 2" -> NO entonces asigno a cont ""
* El tercer if analiza (Es campo 2 menor que campo 1 (campo 1 es vacio) osea que campo2 es mayor) -> FALSE entra por el else removeria todas las clases is-invalid, dejaria los campos vacios y devolveria 0

No quiero darte la solucion porque lo interesante de resolver algoritmos es pensarlo vos mismo pero no estas tan mal en tu logica

Saludos!
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