JavaScript - Autocompletar campo

 
Vista:

Autocompletar campo

Publicado por IPR (7 intervenciones) el 16/02/2016 12:48:31
Tengo un campo de texto en un formulario (#cConductor) en el que al escribir aparecen opciones en una lista para autocompletarlo. El contenido del autocompletar se carga por ajax.
Al salir de ese campo, tras seleccionar de ella un valor, se carga automáticamente el siguiente campo del fomrulario con el DNI de ese usuario.

Me gustaría hacer que la carga del campo dos fuera al hacer clic en el desplegable de autocompletar, y no cuando cambio de campo.

¿Alguna idea?
Os dejo el script:

1
2
3
4
5
6
7
8
9
10
11
12
$('#cConductor').on('change blur keyup',function(event) {
  if ( $('#cConductor').val().length > 4 ){
    $.ajax({
      url: '/models/ajax.cfc?method=getConductor',
      data: { nombre: $('#cConductor').val() },
      dataType: 'json',
      success: function( resultdata ) {
      if (resultdata.DNI != undefined && resultdata.DNI != '') $('#cCifDniCond').val(resultdata.DNI);
      }
    });
  }
});
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

Autocompletar campo

Publicado por arck (74 intervenciones) el 17/02/2016 13:21:49
Genera la carga por el evento onchange del campo autocompletar.

Con esa función creo que te debería salir bien, a lo mejor es que te tarda un poco.

¿Puedes quitar el blur y el keyup y probar?
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

Autocompletar campo

Publicado por IPR (7 intervenciones) el 23/02/2016 11:17:17
Hola, ¿tendría que añadir una función nueva? ¿Podrías ponerme un ejemplo de lo que me comentas?
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

Autocompletar campo

Publicado por arck (74 intervenciones) el 23/02/2016 11:32:24
Puedes hacer en el autocompletar un evento onChange y que llame a la función.

1
2
3
4
5
6
7
8
9
10
11
function actualizar(){
     $.ajax({
           url: '/models/ajax.cfc?method=getConductor',
           data: { nombre: $('#cConductor').val() },
           dataType: 'json',
           success: function( resultdata ) {
           if (resultdata.DNI != undefined && resultdata.DNI != "")
                  $('#cCifDniCond').val(resultdata.DNI);
           }
         });
}

Pero yo no veo que este mal la llamada que realizas, lo que pasa que ajax puede tardar un poco.
Prueba a cambiar el valor del autocomplete y esperar 6 segundos antes de cambiar de campo.
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

Autocompletar campo

Publicado por IPR (7 intervenciones) el 23/02/2016 11:47:42
Nada.... el problema está en que el campo DNI del conductor se carga cuando cambio al siguiente campo, y no cuando hago clic en el la lista autocompletar del Conductor. Debe ser cuando se haga clic en esa lista....

Gracias por tu ayuda!
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

Autocompletar campo

Publicado por arck (74 intervenciones) el 23/02/2016 12:43:53
con la funcion esta deberia hacertelo.
vamos a simplificar.
a tomar por culo ajax por ahora.

Prueba que si seleccionas algun conductor si se pone el dni con esta funcion.

con el onchange

1
2
3
$('#cConductor').on('change',function({
      $('#cCifDniCond').val("00000000T");
  });
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

Autocompletar campo

Publicado por IPR (7 intervenciones) el 23/02/2016 12:58:40
Sí, si añado manualmente un conductor, al hacer clic en el campo DNI se actualiza con ese valor indicado en la función.
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

Autocompletar campo

Publicado por arck (74 intervenciones) el 23/02/2016 13:53:50
¿puedes ponerme el html del autocompletar y el DNI?
debería rellenartelo cuando haces algún cambio en el cConductor
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

Autocompletar campo

Publicado por IPR (7 intervenciones) el 23/02/2016 14:04:23
Este es el HTML:

1
2
3
4
5
6
7
8
9
10
11
12
<div class="form-group">
<label for="cConductor" class="control-label col-md-3">Conductor</label>
<div class="col-md-9">
<input name="Conductor" id="cConductor" type="text" class="form-control"	placeholder="Escriba un nombre" maxlength="30"  required>
</div>
</div>
<div class="form-group">
<label for="cCifDniCond" class="control-label col-md-3">DNI Conductor</label>
<div class="col-md-9">
<input name="CifDniCond" id="cCifDniCond" type="text" class="form-control" placeholder="Escriba un DNI" minlength="9" maxlength="9">
</div>
</div>

El desplegable de autocompletado aparece unicamente, cargando datos por ajax.
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

Autocompletar campo

Publicado por arck (74 intervenciones) el 23/02/2016 15:17:58
En realidad esta funcionando bien, si en vez de pulsar directamente en el campo del dni pulsas en otro lado veras como tambien lo actualiza.

si ves que no te gusta esa opcion, tambien tienes esta:
1
2
3
$('#cConductor').mouseout(function(){
                    $('#cCifDniCond').val("00000000T");
              });
Se lanza en el momento que quites el ratón del autocompletar.
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

Autocompletar campo

Publicado por IPR (7 intervenciones) el 24/02/2016 08:56:27
Si las dos opciones que me comentas funcionan, pero ¿cómo hago que al seleccionar una opción en una lista autocompletar del campo conductor, actualice también el de su DNI, sin tener que hacer nada más que un clic en esa lista?
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

Autocompletar campo

Publicado por arck (74 intervenciones) el 24/02/2016 10:32:11
Con el select en el auto completar? puede ser una buena opción.

No veo mas opciones, la de que se actualice cuando sacas el ratón debería ser rápida.
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

Autocompletar campo

Publicado por IPR (7 intervenciones) el 24/02/2016 12:37:20
Listo! esa era la solución, mil gracias por la ayuda que me has prestado!!
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