Ver Mensaje Individual
  #17 (permalink)  
Antiguo 01/08/2009, 13:11
Avatar de Adler
Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Fijar valor en textbox

Gracias zerokilled por tu inestimable ayuda. Dejo el script por si a alguien le interesa

Código javascript:
Ver original
  1. var SelUsuario = {
  2.  
  3. Evento: function (elemento,nomevento,funcion) {
  4.   if (elemento.attachEvent)
  5.   {
  6.       var f=function(){
  7.         funcion.call(elemento,window.event);
  8.     }
  9.     elemento.attachEvent('on'+nomevento,f);
  10.     return true;
  11.   }
  12.   else  
  13.     if (elemento.addEventListener)
  14.     {
  15.       elemento.addEventListener(nomevento,funcion,false);
  16.       return true;
  17.     }
  18.     else
  19.       return false;
  20. },
  21.  
  22.  
  23.  
  24. init: function(){
  25. var elem1 = document.getElementById("txt");
  26. var elem2 = document.getElementById("contenedor");
  27.         SelUsuario.Evento(elem1, 'keyup', SelUsuario.Empieza);
  28.         SelUsuario.Evento(elem2, 'mouseover', SelUsuario.Seleccionar);
  29.         SelUsuario.Evento(elem1, 'keydown', SelUsuario.Pegar2);
  30.         SelUsuario.Evento(window, 'click', SelUsuario.Cerrar);
  31.     },
  32.  
  33.  
  34.  
  35.  
  36. creaAjax: function (){
  37.     var ajaxs = ["Msxml2.XMLHTTP","Msxml2.XMLHTTP.4.0","Msxml2.XMLH TTP.5.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];
  38.     var ajax = false;
  39.     for(var i=0 ; !ajax && i<ajaxs.length ; i++){
  40.         try{
  41.             ajax = new ActiveXObject(ajaxs[i]);   // Internet Explorer
  42.         }
  43.         catch(e) {
  44.             ajax = false;
  45.         }
  46.     }
  47.     if(!ajax && typeof XMLHttpRequest!='undefined') {
  48.         ajax = new XMLHttpRequest();  // Firefox, Opera 8.0+, Safari
  49.     }
  50.     return ajax;
  51. },
  52.  
  53.  
  54.  
  55. Empieza: function (ev) {
  56. var str = document.getElementById(this.id).value;
  57. var obj = document.getElementById("contenedor");
  58. var ref = obj.getElementsByTagName('DIV');
  59. var keyCode = document.layers ? ev.which : document.all ? event.keyCode : document.getElementById ? ev.keyCode : 0;
  60.  
  61.      if (keyCode == 40) {
  62.         SelUsuario.BajaOpt ()
  63.      } else if (keyCode == 38) {
  64.         SelUsuario.SubeOpt ()
  65.  
  66.     } else if (keyCode == 13) {
  67.  
  68.         for (var i = 0; i <= ref.length-1; i++) {
  69.             if (ref[i].className == "seleccionado") {
  70.             document.getElementById("txt").value = ref[i].id;
  71.             if (obj.style.display == "block"); obj.style.display= "none";
  72.         break;
  73.         }
  74.  
  75.     }
  76.  
  77.         try{ // DOM;
  78.             ev.preventDefault();
  79.             }catch(e){ // iexplore;
  80.             ev.returnValue = false;
  81.             }
  82.  
  83.     } else {
  84.  
  85.     if (str.length < 2) {
  86.         //obj.innerHTML = "";
  87.         if (obj.style.display == "none")  obj.style.display= "none";
  88.                 else obj.style.display= "none";
  89.         return;
  90.     }
  91.     ajax = SelUsuario.creaAjax()
  92.     if (ajax==null) {
  93.         alert ("Tu navegador no soporta Ajax");
  94.         return;
  95.      }
  96. var url="SelecUsuarios.asp?q="+escape(str);
  97.     ajax.open("GET",url,true);
  98.     ajax.onreadystatechange = SelUsuario.Despliega;
  99.     //ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  100.             ajax.send(null);
  101.             return
  102. }
  103. },
  104.  
  105.  
  106. Despliega: function () {
  107. var obj = document.getElementById("contenedor");
  108.    
  109.         if (ajax.readyState==1 || ajax.readyState==2 || ajax.readyState==3) {
  110.                                         obj.innerHTML = "<p align='center'><img src='precarga.gif' border='0px' widht='15px' height='15px'/></p>";
  111.             obj.style.display= "block";
  112.                 }
  113.  
  114.                 else if (ajax.readyState==4) {
  115.             if (ajax.status==200) {
  116.             obj.innerHTML = unescape(ajax.responseText);
  117.  
  118.             }else {
  119.                                     obj.innerHTML = "<p>Se ha producido un error</p>";
  120.             }
  121.  
  122.         if (obj.style.display == "none")  obj.style.display= "block";
  123.         }
  124. },
  125.  
  126.  
  127.  
  128. Seleccionar: function () {
  129. var ref = document.getElementById(this.id).getElementsByTagName('DIV');
  130.     for (var i = 0; i < ref.length; i++) {
  131.         SelUsuario.Evento(ref[i], 'click', function() {
  132.         SelUsuario.Pegar(this.id);
  133.         })  
  134.  
  135.  
  136.         SelUsuario.Evento(ref[i], 'mouseover',  function() {
  137.         SelUsuario.Marcar(this.id);
  138.         })
  139.     }
  140. },
  141.  
  142.  
  143.  
  144. Pegar: function (valor) {
  145. var obj = document.getElementById("contenedor")
  146.         document.getElementById("txt").value = valor;
  147.                 if (obj.style.display == "block"); obj.style.display= "none";      
  148. },
  149.  
  150.  
  151. Pegar2: function (ev) {
  152. var obj = document.getElementById("contenedor")
  153. var ref = obj.getElementsByTagName('DIV');
  154. var keyCode = document.layers ? ev.which : document.all ? event.keyCode : document.getElementById ? ev.keyCode : 0;
  155.     if ((keyCode == 13) || (keyCode == 9)) {
  156.         for (var i = 0; i <= ref.length-1; i++) {
  157.             if (ref[i].className == "seleccionado") {
  158.             document.getElementById("txt").value = ref[i].id;
  159.             if (obj.style.display == "block"); obj.style.display= "none";
  160.         break;
  161.             }
  162.         }
  163.     }  
  164. },
  165.  
  166.  
  167.  
  168. BajaOpt: function() {
  169. var ref = document.getElementById("contenedor").getElementsByTagName('DIV');
  170.     for (var i = 0; i <= ref.length-1; i++) {
  171.         if (ref[i].className == "seleccionado") {
  172.         ref[i].className = "deseleccionado";
  173.             if (i < ref.length-1){
  174.             i++;
  175.             }else{
  176.             i = 0;
  177.             }
  178.         ref[i].className = "seleccionado"
  179.         }
  180.     }
  181. },
  182.  
  183.  
  184. SubeOpt: function() {
  185. var ref = document.getElementById("contenedor").getElementsByTagName('DIV');
  186.     for (var i = 0; i <= ref.length-1; i++) {
  187.         if (ref[i].className == "seleccionado") {
  188.         ref[i].className = "deseleccionado";
  189.             if (i < ref.length && i > 0){
  190.             i--;
  191.             }else{
  192.             i = ref.length-1;
  193.             }
  194.         ref[i].className = "seleccionado"
  195.         }
  196.     }
  197. },
  198.  
  199.  
  200. Marcar: function (id) {
  201. var selecionado = document.getElementById(id);
  202. var ref = document.getElementById("contenedor").getElementsByTagName('DIV');
  203.     for (var i = 0; i <= ref.length-1; i++) {
  204.         if (ref[i].id != id) {
  205.         ref[i].className = "deseleccionado";
  206.         selecionado.className = "seleccionado";
  207.         }
  208.     }
  209. },
  210.  
  211.  
  212.  
  213. Cerrar: function () {  
  214. var obj = document.getElementById("contenedor")
  215.             if (obj.style.display == "block"); obj.style.display= "none";  
  216.     }
  217. }
  218.  
  219. SelUsuario.Evento(window, 'load', SelUsuario.init,false);
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />