Foros del Web » Programando para Internet » Javascript »

como hacer que varias filas de input text se multipliquen

Estas en el tema de como hacer que varias filas de input text se multipliquen en el foro de Javascript en Foros del Web. antes de llegar a la pagina de nomina pregunto cuantos trabajadores va a registrar entonces envio el valor a la siguiente pagina y con esto ...
  #1 (permalink)  
Antiguo 09/05/2011, 11:57
 
Fecha de Ingreso: noviembre-2010
Mensajes: 181
Antigüedad: 13 años, 5 meses
Puntos: 2
como hacer que varias filas de input text se multipliquen

antes de llegar a la pagina de nomina pregunto cuantos trabajadores va a registrar entonces envio el valor a la siguiente pagina y con esto creo el numero de filas necesarias una fila con 3 campos por trabajador que son los que menciono mas abajo.
la cuestion es la siguiente tengo un formulario que es de pago de nomina y tengo 3 input text el primero se llama diastrabajados[] y el tro pagoxdia[] y por ultimo total[].

bueno una vez que ya tengo creados los campos meto el primer valor y el segundo valor y quiero que se multipiquen y en el tercer campo aparezca el total de cada trabajador, espero me haya explicado el poblema es que no se como hacerlo, asi que algun script para hacer esto. por que tengo un script el cual funciona pero si se trata solo de campos que no tengan corchetes y necesito un script que haga esto pero con variables tipo array.
  #2 (permalink)  
Antiguo 09/05/2011, 12:38
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: como hacer que varias filas de input text se multipliquen

buenas,
no tan complicado obtener los campos cuando tienen este tipo de sintaxis. tienes dos formas. puedes usar la funcion getElementsByName para obtener todos los elementos de un mismo nombre. en el primer parametro simplemente le pasas un string el cual en tu caso deberia ser el valor asignado al atributo name del campo. esta funcion te devuelve una coleccion de elementos, algo parecido a un array. a partir de ahi accedes a cada uno de ellos.

la otra forma es usando la sintaxis de corchetes, tambien conocido como notacion por corchetes. consiste en sustituir el operador property accessor -el punto- de los objetos por un par de corchetes y dentro de este escribes un string que refleja el nombre de una propiedad del objeto.
http://www.jibbering.com/faq/faq_not..._brackets.html
https://developer.mozilla.org/es/Ref..._por_corchetes

__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 09/05/2011, 13:11
 
Fecha de Ingreso: noviembre-2010
Mensajes: 181
Antigüedad: 13 años, 5 meses
Puntos: 2
Respuesta: como hacer que varias filas de input text se multipliquen

zerokilled ya pude hacer la funcion que reconoce que hay tantos elementos con el mismo nombre usando GetElementsByName("diastrab[]");
ahora como hago para accesar a los valores de diastrab[].
disculpa pero es que no se nada de javascript
  #4 (permalink)  
Antiguo 09/05/2011, 13:16
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: como hacer que varias filas de input text se multipliquen

pero, ¿no habias dicho que ya tenias un script que funcionaba? solo que no funciona cuando el campo esta destinado a ser un array. intenta adaptar el codigo.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 09/05/2011, 17:23
 
Fecha de Ingreso: noviembre-2010
Mensajes: 181
Antigüedad: 13 años, 5 meses
Puntos: 2
Respuesta: como hacer que varias filas de input text se multipliquen

este es el script que me quedo pensando que me iba a funcionar pero no funciono entonces dices que le adapte el GetElementByName();
pero en realidad como desconozco javascript mas o menos guiame cual es el cambio que debo hacer esto lo hice por que se java pero javascript nada.
Código Javascript:
Ver original
  1. <script type="text/javascript">function fncSumar(c){
  2.     campo=c.form;
  3.     for(var i=0;i < campo.length-1;i++){
  4.      d=document.form1.diastrab[i];
  5.      p=document.form1.pagoxdia[i];
  6.      //r=document.form1.total_pago[i];
  7.      if(!d.value || !p.value) return false;
  8.      if(isNaN(d.value) || isNaN(p.value)) return false;
  9.          res=d.value*p.value;
  10.         document.form1.total_pago[i]= r.value;
  11.     }
  12. }
  13.  </script>
  #6 (permalink)  
Antiguo 09/05/2011, 17:47
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: como hacer que varias filas de input text se multipliquen

Código:
// en negrita las lineas que debes editar ;
function fncSumar(c){
	campo=c.form;
	for(var i=0;i < campo.length-1;i++){
	 d=document.form1.diastrab[i]; 
	 p=document.form1.pagoxdia[i];
	 //r=document.form1.total_pago[i]; ignoro esa linea porque esta comentada, por tanto javascript lo ignora;
	 if(!d.value || !p.value) return false;
	 if(isNaN(d.value) || isNaN(p.value)) return false;
	     res=d.value*p.value;
		document.form1.total_pago[i]= r.value;
	}
}
 </script>
lo mas facil seria que utilices la sintaxis de corchete. ¿ya leistes el primer articulo que ofreci? especificamente la parte que te debe interesar es la segunda seccion, square bracket syntax. fijate en los ejemplos que trabaja con el formulario. es cuestion que luego de form1 utilices la sintaxis de corchete utilizando como valor dentro de este el nombre del campo.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #7 (permalink)  
Antiguo 09/05/2011, 17:54
 
Fecha de Ingreso: noviembre-2010
Mensajes: 181
Antigüedad: 13 años, 5 meses
Puntos: 2
Respuesta: como hacer que varias filas de input text se multipliquen

Muchas gracias por tu apoyo ahora si con esa directriz creo que ys se por donde debo irme
  #8 (permalink)  
Antiguo 09/05/2011, 18:51
 
Fecha de Ingreso: noviembre-2010
Mensajes: 181
Antigüedad: 13 años, 5 meses
Puntos: 2
Respuesta: como hacer que varias filas de input text se multipliquen

Código Javascript:
Ver original
  1. <script language="javascript" type="text/javascript">
  2. function obtsalario(){
  3.        var ele=document.getElementsByName("diastrab[]");
  4.        alert(ele.length);
  5.        var diastrab = document.getElementByName('diastrab[]').value;
  6.        var pagoxdia=document.getElementsByName('pagoxdia[]').value;
  7.        var totalpago=(distrab*pagoxdia);
  8.        document.getElementsByName('total_pago[]').value=totalpago;
  9. }
  10. </script>

mira zerokilled la otra sintaxis no me funciono e intente esta solo me sale la alerta y me dice que tengo 3 campos y esta bien pero cuando pido los valores para hacer la operacion no funciona lo que necesito saber es como tratar los arrays que vienen de html a javascript eso es lo que verdaderamente me esta quitando el sueño.
ayuda por fa.
  #9 (permalink)  
Antiguo 09/05/2011, 19:02
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: como hacer que varias filas de input text se multipliquen

getElementsByName siempre devuelve una coleccion de elementos, parecido a un array. para accesar cada elemento es igual como en los arrays, un par de corchete y dentro la posicion (indice) del elemento a acceder. supongo que es lo mismo como en java. luego de indicar el indice, entonces puedes leer la propiedad value.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #10 (permalink)  
Antiguo 10/05/2011, 07:48
 
Fecha de Ingreso: noviembre-2010
Mensajes: 181
Antigüedad: 13 años, 5 meses
Puntos: 2
Respuesta: como hacer que varias filas de input text se multipliquen

lo que dices es correcto lo que tengo duda es si la sintaxis es diferente a la que te envio o en los corchetes que estan mostrados ahi en las variables es donde tengo que poner el indice por que ya lo hice con un for obteniendo el numero de elementos que detecta el getElementsByName() pero aun asi no funciona.

Etiquetas: filas, input, txt
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 16:19.