Foros del Web » Programando para Internet » Javascript »

Duplicar funciones

Estas en el tema de Duplicar funciones en el foro de Javascript en Foros del Web. Se que es un poco boba esta pregunta pero tengo una duada que no me deja dormir xD Resulta que tengo una funcion y 8 ...
  #1 (permalink)  
Antiguo 12/08/2009, 15:40
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 15 años, 4 meses
Puntos: 0
Duplicar funciones

Se que es un poco boba esta pregunta pero tengo una duada que no me deja dormir xD

Resulta que tengo una funcion y 8 formularios, trabaje sobre esta funcion (que actuan en un solo formulario) para despues aplicarla a las otras 7 (cabe mencionar que los ocho forms estan dentro de un mismo html) entonces me quiero referir a los campos en especifico por el nombre del formulario como le hago?

Código js:
Ver original
  1. function nuevoEvento(evento)
  2.        
  3. {
  4.     var divMensaje=document.getElementById("error");
  5.  
  6.     if(evento=="ingreso")
  7.     {
  8.         var matricula=document.getElementById("matricula").value;
  9.         var nombre=document.getElementById("nombre").value;
  10.         var colegio=document.getElementById("colegio").value;
  11.         var carrera=document.getElementById("TextBoxA").value;
  12.         var turno=document.getElementById("turno").value;
  13.         var concepto=document.getElementById("concepto").value;
  14.         var pago=document.getElementById("pago").value;
  15.         var input=document.getElementById("ingreso");
  16.         var boton=document.getElementById("botonIngreso");
  17.         var valora=input.value;
  18.         var textoAccion="Ingresando...";
  19.     }
  20.     else
  21.     {
  22.         var input=document.getElementById("verificacion");
  23.         var boton=document.getElementById("botonVerificacion");
  24.         var valora=input.value;
  25.         var textoAccion="Comprobando...";
  26.     }
  27.     if(!validaNombre(nombre)){
  28.         alert("El nombre ingresado contiene caracteres o longitud invalida.");
  29.         boton.disabled=true; document.sumar1.okay1.checked = false;
  30.         document.sumar1.nombre.style.backgroundColor="#FFD2DB";
  31.     }
  32.     if(!validaMatricula(matricula)){
  33.         alert("La matricula ingresada contiene caracteres o longitud invalida.");
  34.         boton.disabled=true; document.sumar1.okay1.checked = false;
  35.         document.sumar1.matricula.style.backgroundColor="#FFD2DB";
  36.     }
  37.     if(document.sumar1.total1.value=='0'){
  38.         alert("La cantidad del deposito debe ser diferente a cero.");
  39.         boton.disabled=true; document.sumar1.okay1.checked = false;
  40.         document.sumar1.total1.style.backgroundColor="#FFD2DB";
  41.     }
  42.     valora=eliminaEspacios(valora);
  43.     if(!validaIngreso(valora))
  44.     {
  45.         alert("El folio ingresado contiene caracteres o longitud invalida.");
  46.         boton.disabled=true; document.sumar1.okay1.checked = false;
  47.         document.sumar1.folio.style.backgroundColor="#FFD2DB";
  48.     }
  49.     else
  50.     {
  51.         document.sumar1.disabled=true;
  52.         input.value=textoAccion;
  53.        
  54.         var ajax=nuevoAjax();
  55.         ajax.open("POST", "comprobar.php", true);
  56.         ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  57.         ajax.send(evento+"="+valora+"&matricula="+matricula+"&nombre="+nombre+"&colegio="+colegio+"&carrera="+carrera+"&nombre="+nombre+"&colegio="+colegio+"&carrera="+carrera+"&turno="+turno+"&concepto="+concepto+"&pago="+pago);
  58.        
  59.         ajax.onreadystatechange=function()
  60.         {
  61.             if (ajax.readyState==4)
  62.             {
  63.                 document.sumar1.reset();
  64.                 document.sumar1.nombre.style.backgroundColor="#fff";
  65.                 document.sumar1.matricula.style.backgroundColor="#ffffff";
  66.                 document.sumar1.folio.style.backgroundColor="#ffffff";
  67.                 document.sumar1.total1.style.backgroundColor="#ffffff";
  68.                 document.getElementById('TextBoxA').value = document.getElementById('ComboBox2').value;
  69.                 document.sumar1.disabled=false;
  70.                 boton.disabled=true; input.disabled=false;
  71.                 divMensaje.innerHTML=ajax.responseText;
  72.             }
  73.         }
  74.     }
  75. }

Como veran apartir del segundo IF empiezo a referirme al formulario sumar1 pero intente agregar document..sumar1.getElementById y me mando error, osea lo que quiero corregir es esta linea pero ya busque en manuales de document.getElementById y no encuentro como aplicar sumar1 a esta funcion.

Código js:
Ver original
  1. if(evento=="ingreso")
  2.     {
  3.         var matricula=document.getElementById("matricula").value;
  4.         var nombre=document.getElementById("nombre").value;
  5.         var colegio=document.getElementById("colegio").value;
  6.         var carrera=document.getElementById("TextBoxA").value;
  7.         var turno=document.getElementById("turno").value;
  8.         var concepto=document.getElementById("concepto").value;
  9.         var pago=document.getElementById("pago").value;
  10.         var input=document.getElementById("ingreso");
  11.         var boton=document.getElementById("botonIngreso");
  12.         var valora=input.value;
  13.         var textoAccion="Ingresando...";
  14.     }
  15.     else
  16.     {
  17.         var input=document.getElementById("verificacion");
  18.         var boton=document.getElementById("botonVerificacion");
  19.         var valora=input.value;
  20.         var textoAccion="Comprobando...";
  21.     }

quiero duplicarla para los formularios sumar2, sumar3, ....................... sumar8.

Como le hago alguna sugerencia?
  #2 (permalink)  
Antiguo 12/08/2009, 17:05
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Duplicar funciones

No puede haber dos elementos con el mismo id. Por eso, sólo existe document.getElementById.

A efectos prácticos, no entiendo exactamente lo que quieres hacer.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 12/08/2009, 17:17
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Duplicar funciones

Hola David, mira intento cargar las variables pero especificamente del formulario llamado sumar1, ose ser mas especifico refiriendome con var matricula=document.getElementById("matricula").val ue;

Como veras con document.sumar1.okay1.checked = false;
si estoy señalando el objeto con el nombre okay1 del formulario sumar1, toda esa parte de la funcion para mi esta bien y funciona perfecto, pero ahora necesito referirme con la misma presision con var matricula=document.getElementById("matricula").val ue;
no se si sea posible
  #4 (permalink)  
Antiguo 13/08/2009, 06:44
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Duplicar funciones

O laguna opcion?
  #5 (permalink)  
Antiguo 13/08/2009, 09:41
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Duplicar funciones

Como te comenté, no puede existir dos elementos con el mismo id (sólo puede haber un elemento con id="matricula"), por lo que no tiene sentido que haya document.sumar1.getElementById. Existe getElementsByTagName, o hasta puedes hacer referencia al nombre a partir de una variable, por ejemplo:
Código Javascript:
Ver original
  1. var variable = "okay1";
  2. document.sumar1[variable].checked = false;
De otra forma tendrías que explicar mejor qué es lo que tratas de hacer.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 13/08/2009, 11:05
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Duplicar funciones

Gracias por el dato lo voy a poner en marcha y si puedo lograrlo con el ya comentare.
  #7 (permalink)  
Antiguo 13/08/2009, 12:23
Avatar de tampon  
Fecha de Ingreso: julio-2009
Mensajes: 420
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Duplicar funciones

Hola david, gracias por la ayuda, lo resolvi de otra forma es verdad que el id no se puede duplicar asi que solo cambie de variable a variable2 y asi hasta variable8, gracias de todas formas saludos!
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 18:41.