JavaScript - Falla al asignar un valor resultado de una búsqueda

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

Falla al asignar un valor resultado de una búsqueda

Publicado por CARLOS (6 intervenciones) el 17/09/2018 23:30:19
Buenas tardes,
Me está pasando que no completa el valor asignado al id del campo txtNombreContri (Nombre de Contribuyente), luego de una búsqueda incremental. El objetivo es que el usuario vaya ingresando los primeros caracteres del nombre y el resultado sea una tabla con el resultado de la búsqueda en la BD, en el div con id="divMuestraContri". Por último, cuando el usuario elige el nombre, deberían completarse los 2 campos: txtCuitContri con id_cuit y txtNombreContri con razon_soc.
El problema es que en el campo txtNombreContri, queda solo el patrón de búsqueda y no poner el nombre entero, que sería lo esperado. No veo que estoy haciendo mal.

El html sería:
1
2
3
4
5
6
7
8
9
10
11
<fieldset style="display:inline; margin:0 20px 0 20px;">
    <legend style="font-size:12px;">< Contribuyente ></legend>
    <label style="font-size:14px;">N&deg; de CUIT/DNI
    <input id="txtCuitContri" class="inpDatos" type="text" size="10">
    </label>
    <label>Nombre
    <input id="txtNombreContri" class="inpDatos" type="text" size="30">
    </label>
</fieldset>
 
<div id="divMuestraContri"></div>

Y el script:
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
$(document).ready(function(){
    $("#txtNombreContri").keyup(function(){
        var valor = $(this).val();
        var long = valor.length;
        if (long >= 2) {
            tipo = "BUSCAxNOMBRE";
            dataPost = "patron="+valor+"&tipo="+tipo;
            $.ajax({
                type: "POST",
                url: "CONTROLLERS/controllerContribuyente.php",
                data:dataPost,
                dataType: "json",
                success: function(data) {
                    $("#divContTblFiltros").css({top:"270px",
                                                left:"500px",
                                                display:"inline"});
                    armaTablaContriBusqueda(data);
                }
            });
        }else{
            $("#divContTblFiltros").css({display:"none"});
        }
    });
});
 
function armaTablaContriBusqueda(data){
    var i = 0;
    var tabla = "<table id=\"tblSearchRSoc\"><thead><tr><th>CUIT</th><th>____Nombre____</th><th>&ensp;</th></tr></thead><tbody>";
    for (i in data){
        tabla += "<tr><td>" + data[i].id_cuit + "</td><td>" + data[i].razon_soc + "</td><td class=\"tdSelec\" onclick = \"javascript:RellenaBusquedaContri('"+data[i].id_cuit+"','"+data[i].razon_soc+"');\">OK</td></tr>";
    }
    tabla += "</tbody></table>";
    $("#divMuestraContri").html(tabla);
}
 
function RellenaBusquedaContri(cuit,nomb){
    $("#txtCuitContri").attr("value",cuit);
    $("#txtNombreContri").attr("value",nomb);
}

Desde ya muchas gracias por tu ayuda.
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
sin imagen de perfil
Val: 5
Ha disminuido su posición en 29 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Falla al asignar un valor resultado de una búsqueda

Publicado por Ismael (10 intervenciones) el 18/09/2018 21:38:29
Hola,

prueba en el ajax, en vez de poner las acciones en el success, intenta ponerlo en el done,

ya que puede que estés intentando recuperar el data, de algo que aún no ha sucedido.

ya que el success se ejecuta cuando se ha lanzado la petición correctamente y no como el done, que éste es cuando termina toda la petición y devuelve una respuesta.
También prueba poniendo en el ajax
async: false

Un Saludo
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