Ver Mensaje Individual
  #7 (permalink)  
Antiguo 25/04/2014, 12:43
Avatar de legomolina
legomolina
 
Fecha de Ingreso: junio-2011
Ubicación: Valencia
Mensajes: 165
Antigüedad: 12 años, 11 meses
Puntos: 3
Respuesta: onchange en input que cambia solo

Código Javascript:
Ver original
  1. function campos(res,formulario,caso,codigos) {
  2.     if(!nuevo_reg && !editar_reg && !ver_tabla) {
  3.         var form=$("formulario_"+formulario); //Busca el formulario desde el que ha sido llamado
  4.  
  5.         if(!busq) { //busq es false si no se llama a esta funcion desde el cuadro de búsqueda
  6.             switch(caso) {
  7.                 case 0: //Anterior
  8.                     index--; //Resta uno al índice anterior
  9.                 break;
  10.                 case 1: //Siguiente
  11.                     index++; //Añade uno al índice anterior
  12.                 break;
  13.                 case 2: //Primero
  14.                     index=0; //Iguala el índice a 0 que es el primer registro
  15.                 break;
  16.                 case 3: //Ultimo
  17.                     index=res.length-1; //Iguala el índice a la cantidad de resultados menos 1 ya que el length empieza en 1 y no 0
  18.                 break;
  19.                 default: //Por defecto
  20.                     index=res.length-1; //Que muestre el último registro
  21.                 break;
  22.             }          
  23.             if(index<0) { //Significa que es el primer registro a mostrar
  24.                 alert('¡Ya es el primer registro!'); //Salta una advertencia y se suma el índice para la próxima búsqueda
  25.                 index++;
  26.             } else {
  27.                 if(index>=res.length) { //Significa que es el último registro
  28.                     alert('¡Ya es el último registro!'); //Salta una advertencia y se resta el índice para la próxima búsqueda
  29.                     index--;
  30.                 } else { //Si no da ningun error hace la búsqueda del registro correspondiente al índice para mostrarlo y desactiva los campos por si acaso
  31.                     for (i=0; i<form.elements.length; i++) { //Form.elements=cantidad de elementos dentro del form
  32.                         if(form.elements[i].type=='text' || form.elements[i].type=='textarea') { //Para que solo afecte a aquellos elementos que sean inputs o textarea
  33.                             id=form.elements[i].id.split("_");
  34.  
  35.                             form.elements[i].value=res[index][id[id.length-1]]; //Mete en el elemento i el valor que le corresponde del registro
  36.                             form.elements[i].disabled=true; //Desactiva el elemento i por si acaso
  37.                         }
  38.                     }
  39.                     //llenartabla(formulario,res,busq,indices);
  40.                 }          
  41.             }
  42.         }
  43.         else { //si se le llama desde el cuadro de búsqueda...
  44.             switch(caso) {
  45.                 case 0: //Anterior
  46.                     for(i=0; i<indices.length; i++) {
  47.                         if((index-1)==indices[i]) { //Si existe el indice en el cjto de los indices
  48.                             index--; //Resta uno al índice anterior
  49.                             break;
  50.                         }
  51.                     }
  52.                 break;
  53.                 case 1: //Siguiente
  54.                     for(i=0; i<indices.length; i++) {
  55.                         if((index+1)==indices[i]){ //Si existe el indice en el cjto de los indices 
  56.                             index++; //Añade uno al índice anterior
  57.                             break;
  58.                         }
  59.                     }
  60.                 break;
  61.                 case 2: //Primero
  62.                     index=indices[0]; //Iguala el índice a 0 que es el primer registro
  63.                 break;
  64.                 case 3: //Ultimo
  65.                     index=indices[indices.length-1]; //Iguala el índice a la cantidad de resultados menos 1 ya que el length empieza en 1 y no 0
  66.                 break;
  67.                 default: //Por defecto
  68.                     index=indices[indices.length-1]; //Que muestre el último registro
  69.                 break;
  70.             }
  71.             for (i=0; i<form.elements.length; i++) { //Form.elements=cantidad de elementos dentro del form
  72.                 if(form.elements[i].type=='text' || form.elements[i].type=='textarea') { //Para que solo afecte a aquellos elementos que sean inputs o textarea
  73.                     id=form.elements[i].id.split("_");
  74.                     form.elements[i].value=res[index][id[id.length-1]]; //Mete en el elemento i el valor que le corresponde del registro
  75.                     form.elements[i].disabled=true; //Desactiva el elemento i por si acaso
  76.                 }
  77.             }
  78.             //llenartabla(formulario,res,busq,indices);
  79.         }
  80.     }
  81. }