JQuery - Problema con jquery

   
Vista:

Problema con jquery

Publicado por Jesus (13 intervenciones) el 23/04/2017 16:58:11
Estoy tratando de invocar al evento change de jquery y este no funciona, no me invoca al evento. Si hago click en un evento change no hace nada.


Por ejemplo si coloco este código, queda sin hacer nada y ya está colocada la librería jquery

1
2
3
$("#clinicas").change(function(){
        alert("clinicas");
});
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 Alejandro

Problema con jquery

Publicado por Alejandro (14 intervenciones) el 23/04/2017 22:45:17
Hola, Jesus en que seccion estas cargando el script ? si es en el head intenta poner el código anterior en de esta forma:

1
2
3
4
5
$(document).ready(function() {
$("#clinicas").change(function(){
        alert("clinicas");
});
});
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 con jquery

Publicado por Jesus (13 intervenciones) el 23/04/2017 23:33:53
Si, así lo puse en el head y no funciona. El select aparece por ajax en este div <div id="clinicasdiv"></div>

1
2
3
4
5
6
7
html='<select class="form-control" id="clinicas" name="clinicas" >';
 
for(i=0;i<clinicas.length;i++){
  html+='<option value="' + clinicas[i]["iIdClinica"] + '">' + clinicas[i]["sNombreClinica"] + '</option>'
}
html+='</select>';
$('#clinicasdiv').append(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 kip

Problema con jquery

Publicado por kip (38 intervenciones) el 23/04/2017 23:54:25
Hola, si es un elemento creado dinamicamente debes usar la funcion .on() sobre el elemento padre y enviando como segundo parametro el elemento hijo al cual se le delegara el evento, seria algo asi:

1
2
3
$('#clinicasdiv').on('click', '#clinicas', function(e) {
    alert("clinicas");
});

Ademas como te comenta Alejandro, si esta en el HEAD recuerda usar la funcion ready() sobre document para que el codigo se ejecute solo cuando el DOM totalmente cargado.
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 con jquery

Publicado por Jesus (13 intervenciones) el 24/04/2017 01:03:42
Si esta en el head, y aun colocándolo de esa ultima forma no me funciona. y la librería jquery esta incluida
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 kip

Problema con jquery

Publicado por kip (38 intervenciones) el 24/04/2017 01:09:59
Puedes colocar todo el codigo javascript que tienes ?
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 con jquery

Publicado por Jesus (13 intervenciones) el 24/04/2017 01:21:28
Este es todo el código del head

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
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 
    <script  src="https://code.jquery.com/jquery-3.2.1.js"  integrity="sha256-DZAnKJ/6XZ9si04Hgrsxu/8s717jcIzLy3oi35EouyE="  crossorigin="anonymous"></script>
    <link href="css/bootstrap.min.css" rel="stylesheet" />
    <script src="js/bootstrap.min.js"></script>
    <!---<script src="js/colombia.js"></script>-->
    <title></title>
 
    <script type="text/javascript">
 
 
        function procesa(jsonEntrada) {
            //alert( jsonEntrada] )
 
            // $.ajax({
            //       type: "POST",
            //       url: "RequestSrvr?txtComando=get-clinicas",
            //       data: { cadena: jsonEntrada }
            //     }).done(function(data) {
            //      alert(data.Result);
            //      alert(data.Records);
 
            //         responde(data.Records);
            //     });
            // }
</script>
 
 
    <script type="text/javascript">
 
    $(document).ready(function() {
    $('#clinicasdiv').on('change', '#clinicas', function(e) {
    alert("clinicas");
    });
 
    });
 
    </script>
 
 
    <script>
      $(document).ready(function() {
 
 
        var URL="http://www.automatizate.com.mx/desa_app/dummy.php";
          $.ajax({
            type: "GET",
        crossDomain: true,
            url: URL+'?txtComando=get-clinicas&callback=get-clinicas',
           dataType: "jsonp",
           success: function (data) {
 
            var clinicas= eval(data);
 
            html='<select class="form-control" id="clinicas" name="clinicas" >';
 
            for(i=0;i<clinicas.length;i++){
              html+='<option value="' + clinicas[i]["iIdClinica"] + '">' + clinicas[i]["sNombreClinica"] + '</option>'
            }
            html+='</select>';
            $('#clinicasdiv').append(html);
 
 
          },
          error: function(jqXHR, textStatus, errorThrown){
             alert('error en llamada');
             console.log(textStatus + '; ' + errorThrown);
          }
          });
 
      });
    </script>
 
 
    <script>
 
 
      $(document).ready(function() {
 
 
        function loadDoctores(){
 
          alert("hola")
 
        var URL="http://www.automatizate.com.mx/desa_app/dummy.php";
          $.ajax({
            type: "GET",
        crossDomain: true,
            url: URL+'?txtComando=get-doctores&callback=get-doctores',
           dataType: "jsonp",
           success: function (data) {
 
            var doctores= eval(data);
 
            html='<select class="form-control">';
 
            for(i=0;i<doctores.length;i++){
              html+='<option value="' + doctores[i]["iIdDoctor"] + '">' + doctores[i]["sNombreDoctor"] + '</option>'
            }
            html+='</select>';
            $('#doctores').append(html);
 
 
          },
          error: function(jqXHR, textStatus, errorThrown){
             alert('error en llamada');
             console.log(textStatus + '; ' + errorThrown);
          }
          });
 
           }
 
 
      });
 
    $(document).ready(function() {
 
 
    if (typeof jQuery == 'undefined') {
 
        alert("jquery no esta cargado")
 
    }else{
 
  alert("jquery si esta cargado")
 
    }
 
 
     });
    </script>
 
</head>
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 con jquery

Publicado por Horroroso (53 intervenciones) el 24/04/2017 20:54:43
Revisa tu codigo en la parte:
1
for(i=0;i<clinicas.length;i++){
cambialo por:

1
for(i=0;i<Object.keys(clinicas).length;i++){

Todo lo demas parece estar bien.

Otra sugerencia, solo ten un
$(document).ready(function() {

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
Revisar política de publicidad