hola a todos, tengo un form con un campo codigo articulo, que cuando lo introduzco debo ir a buscar si existe en una tabla y mostrar unos valores en unos determinados campos input solo de lectura.
Código HTML:
<div class="row">
<div class="form-group">
<label class="col-sm-1 control-label">Cod.</label>
<div class="col-sm-2">
<input type="text" class="form-control" maxlength="8" name="codMontura" id="codMontura" onChange="MostrarConsulta('c_montura.php','divmontura')" onBlur=" fracc_mon()" />
</div>
<div id="divmontura" name="divmontura"></div>
<div class="text-left col-sm-1">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-search"></i>
</a>
</div>
<div class="col-sm-2">
<input type="text" class="form-control" name="modMontura" id="modMontura" disabled>
</div>
<div class="col-sm-2">
<input type="text" class="form-control" name="colMontura" id="colMontura" disabled>
</div>
<div class="col-sm-2">
<input type="text" class="form-control" name="medMontura" id="medMontura" disabled>
</div>
</div> <!-- /.form-group -->
</div> <!-- /.row -->
en el evento onchange llamamos a la funcion ajax
Código:
function MostrarConsulta(procphp,salida){
alert('ajax');
divResultado = document.getElementById(salida);
ajax=objetoAjax();
ajax.open("POST", procphp, true);
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
//mostrar los nuevos registros en esta capa
divResultado.innerHTML = ajax.responseText
}
}
//muy importante este encabezado ya que hacemos uso de un formulario
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
ajax.send(divResultado)
}
y nos devuelve una cadena tal "modelo#color#medida#" que guardo en el div divmontura
para despues aplicarle la funcion fracc_mon y que cada valor me lo situe en los campos del form correspondiente
Código:
<script>
function fracc_mon() {
var textinici= divmontura.innerHTML;
var textseparat = textinici.split('#');
formdetall.modMontura.value= textseparat[0];
formdetall.colMontura.value= textseparat[1];
formdetall.medMontura.value=textseparat[2];
}
</script>
el proceso lo hace correctamente, pero los valores que recoge la llamada ajax no los recupera la función que fracciona el resultado.
O sea, el problema es que cuando vamos ejecuta el fracc_mon el valor del div divmontura todavia no ha cogido el valor que ha modificado la llamada en ajax.
Y cuando finaliza la llamada onblur es cuando modifica el valor del campo div.
donde está el error? conceptual o de sintaxis
gracias