Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Autocomplementar input

Estas en el tema de Autocomplementar input en el foro de Frameworks JS en Foros del Web. Hola atodos es la primera ves que escribo en este foro y antes que nada nu saludo a todos los que ayudan aqui. Bueno pues ...
  #1 (permalink)  
Antiguo 13/07/2010, 10:38
Avatar de Potro  
Fecha de Ingreso: abril-2001
Mensajes: 2.249
Antigüedad: 23 años, 8 meses
Puntos: 39
Autocomplementar input

Hola atodos es la primera ves que escribo en este foro y antes que nada nu saludo a todos los que ayudan aqui.

Bueno pues mi problema es el siguiente:

Baje un codigo donde autocomplemento texto en un input como lo hace gooogle, bueno esto jala muy bien cuando uso el recurso para un solo input donde se buscan nombres pero me han solicitado poner otro input donde se soliciten distribuidores de un catalogo el chiste que adapte el script para que me funcionara para las dos busquedas y todo bien pero hay un inconveniente.

Cuando hago la primera consulta los resultados jalan a la perfecccion, pero cuando empiezo hacer la segunda consulta si en piezo por la misma letra que hice la primera me saca los registros de la primera consulta y no de la segunda, ejemplo grafico.



.
.
.
.
.
.

.
.
.
.
.
.




Mi pregunta es como limpiar el siguiente input antes de enviar las letras.


les muestro el codigo donde se empieza a cargar,...........




function ajax_showOptions(inputObj,paramToExternalFile,e,iT ipo)
{
if(e.keyCode==13 || e.keyCode==9)return;
if(ajax_list_currentLetters[inputObj.name]==inputObj.value)return;
if(!ajax_list_cachedLists[paramToExternalFile])ajax_list_cachedLists[paramToExternalFile] = new Array();
ajax_list_currentLetters[inputObj.name] = inputObj.value;
if(!ajax_optionDiv){
ajax_optionDiv = document.createElement('DIV');
if(iTipo==0 || iTipo == 2){
ajax_optionDiv.id = 'ajax_listOfOptions';
ajax_optionDiv.tel = 'ajax_listOfOptions';
ajax_optionDiv.cel = 'ajax_listOfOptions';
ajax_optionDiv.direccion = 'ajax_listOfOptions';
ajax_optionDiv.colonia = 'ajax_listOfOptions';
ajax_optionDiv.delegacion = 'ajax_listOfOptions';
ajax_optionDiv.cp = 'ajax_listOfOptions';
ajax_optionDiv.entre = 'ajax_listOfOptions';
ajax_optionDiv.ciudad = 'ajax_listOfOptions';
ajax_optionDiv.estado = 'ajax_listOfOptions';
ajax_optionDiv.of = 'ajax_listOfOptions';
}else if(iTipo==1){
ajax_optionDiv.id = 'ajax_listOfOptions';
ajax_optionDiv.distri = 'ajax_listOfOptions';
}
document.body.appendChild(ajax_optionDiv);

if(ajax_list_MSIE){
ajax_optionDiv_iframe = document.createElement('IFRAME');
ajax_optionDiv_iframe.border='0';
ajax_optionDiv_iframe.style.width = ajax_optionDiv.clientWidth + 'px';
ajax_optionDiv_iframe.style.height = ajax_optionDiv.clientHeight + 'px';
if(iTipo==0 || iTipo==2){
ajax_optionDiv_iframe.id = 'ajax_listOfOptions_iframe';
ajax_optionDiv_iframe.tel = 'ajax_listOfOptions_iframe';
ajax_optionDiv_iframe.cel = 'ajax_listOfOptions_iframe';
ajax_optionDiv_iframe.direccion = 'ajax_listOfOptions_iframe';
ajax_optionDiv_iframe.colonia = 'ajax_listOfOptions_iframe';
ajax_optionDiv_iframe.delegacion = 'ajax_listOfOptions_iframe';
ajax_optionDiv_iframe.cp = 'ajax_listOfOptions_iframe';
ajax_optionDiv_iframe.entre = 'ajax_listOfOptions_iframe';
ajax_optionDiv_iframe.ciudad = 'ajax_listOfOptions_iframe';
ajax_optionDiv_iframe.estado = 'ajax_listOfOptions_iframe';
ajax_optionDiv_iframe.of = 'ajax_listOfOptions_iframe';
}else if(iTipo==1){
ajax_optionDiv_iframe.id = 'ajax_listOfOptions_iframe';
ajax_optionDiv_iframe.distri = 'ajax_listOfOptions_iframe';
}

document.body.appendChild(ajax_optionDiv_iframe);
}

var allInputs = document.getElementsByTagName('INPUT');
for(var no=0;no<allInputs.length;no++){
if(!allInputs[no].onkeyup)allInputs[no].onfocus = ajax_options_hide;
}
var allSelects = document.getElementsByTagName('SELECT');
for(var no=0;no<allSelects.length;no++){
allSelects[no].onfocus = ajax_options_hide;
}

var oldonkeydown=document.body.onkeydown;
if(typeof oldonkeydown!='function'){
document.body.onkeydown=ajax_option_keyNavigation;
}else{
document.body.onkeydown=function(){
oldonkeydown();
ajax_option_keyNavigation() ;}
}
var oldonresize=document.body.onresize;
if(typeof oldonresize!='function'){
document.body.onresize=function() {ajax_option_resize(inputObj); };
}else{
document.body.onresize=function(){oldonresize();
ajax_option_resize(inputObj) ;}
}

}

if(inputObj.value.length<minimumLettersBeforeLooku p){
ajax_options_hide();
return;
}


ajax_optionDiv.style.top = (ajax_getTopPos(inputObj) + inputObj.offsetHeight + ajaxBox_offsetY) + 'px';
ajax_optionDiv.style.left = (ajax_getLeftPos(inputObj) + ajaxBox_offsetX) + 'px';
if(ajax_optionDiv_iframe){
ajax_optionDiv_iframe.style.left = ajax_optionDiv.style.left;
ajax_optionDiv_iframe.style.top = ajax_optionDiv.style.top;
}

ajax_list_activeInput = inputObj;
ajax_optionDiv.onselectstart = ajax_list_cancelEvent;
currentListIndex++;
if(ajax_list_cachedLists[paramToExternalFile][inputObj.value.toLowerCase()]){
ajax_option_list_buildList(inputObj.value,paramToE xternalFile,currentListIndex);
}else{
var tmpIndex=currentListIndex/1;
ajax_optionDiv.innerHTML = '';
var ajaxIndex = ajax_list_objects.length;
ajax_list_objects[ajaxIndex] = new sack();

if(iTipo == 0 || iTipo == 2){
var ajax_list_externalFile = "ajax-list0.asp";
}else if(iTipo == 1){
var ajax_list_externalFile = "ajax-list1.asp";
}


var url = ajax_list_externalFile + '?' + paramToExternalFile + '=1&iTipo=' + iTipo + '&letters=' + inputObj.value.replace(" ","+");
ajax_list_objects[ajaxIndex].requestFile = url; // Specifying which file to get
ajax_list_objects[ajaxIndex].onCompletion = function(){ ajax_option_list_showContent(ajaxIndex,inputObj,pa ramToExternalFile,tmpIndex); }; // Specify function that will be executed after file has been found
ajax_list_objects[ajaxIndex].runAJAX(); // Execute AJAX function
}


}




Mil gracias........... por leer todo esto ,....
__________________
Paginación en FLASH,

http://www.forosdelweb.com/f62/pagin...o-aqui-540241/
  #2 (permalink)  
Antiguo 13/07/2010, 10:59
Avatar de boby6killer  
Fecha de Ingreso: abril-2008
Mensajes: 81
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: Autocomplementar input

no he leido detenidamente le codigo pero puede ser que tengas el mismo id en los input de entrada, trata de poner diferentes ids
  #3 (permalink)  
Antiguo 13/07/2010, 11:05
Avatar de Potro  
Fecha de Ingreso: abril-2001
Mensajes: 2.249
Antigüedad: 23 años, 8 meses
Puntos: 39
Respuesta: Autocomplementar input

Mi estimado tiene diferentes ID asi que no es por ahi, como te digo es muy raro que me despliege lo mismo si empiezo por las mismas letras seria formatear eso primero supongo pero no doy donde pueda ser...
__________________
Paginación en FLASH,

http://www.forosdelweb.com/f62/pagin...o-aqui-540241/
  #4 (permalink)  
Antiguo 13/07/2010, 11:24
Avatar de Potro  
Fecha de Ingreso: abril-2001
Mensajes: 2.249
Antigüedad: 23 años, 8 meses
Puntos: 39
Respuesta: Autocomplementar input

Ya solucione el problema ya le entendi....

Explico::::::::::::.

este es mi input::


<input autocomplete="off" type="text" name="nombre" id="nombre" size="50" onkeyup="ajax_showOptions(this,'getCountriesByLett ers0',event,0)">


Como veran manda 4 valores el primero en this es lo que se esta escribiendo despues manda el getCountriesByLetters0 con esto resolvi cuando llega este parametro el ajax lo asigna como el cache asi que solo tuve que poner un numero para que fueron distintos, el tercer valor es el evento y el cuarto el 0 es el tipo de consulta que debe de hacer..

Bueno gracias por ayudar...


Saludos....
__________________
Paginación en FLASH,

http://www.forosdelweb.com/f62/pagin...o-aqui-540241/

Etiquetas: ajax, input
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:00.