Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Funcion no funciona con getElementById

Estas en el tema de Funcion no funciona con getElementById en el foro de Javascript en Foros del Web. Buenas, tengo el siguiente script @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original function contar ( ) {     var precio_unitario = document. getElementById ( ...
  #1 (permalink)  
Antiguo 16/01/2015, 09:47
 
Fecha de Ingreso: diciembre-2014
Mensajes: 60
Antigüedad: 10 años
Puntos: 1
Funcion no funciona con getElementById

Buenas, tengo el siguiente script

Código Javascript:
Ver original
  1. function contar(){
  2.     var precio_unitario = document.getElementById('cantidad_1');
  3.     var cantidad = document.getElementById('preciou_1');
  4.     var importe = document.getElementById('importe_1');
  5.     var iva_concepto = document.getElementById('exceder_iva_1');
  6.     alert(precio_unitario.value);
  7.     alert(cantidad.value);
  8.     alert(importe.value);
  9.     alert(iva_concepto.value);
  10.     //alert("Hay " + precio_unitario.length + " elementos con el nombre 'opción1'");
  11.     for (x=0;x<precio_unitario.value.length;x++){
  12.     importe[x].value=precio_unitario[x].value*cantidad[x].value;
  13.     iva_concepto[x].value=importe[x].value*16/100;
  14.     texto = precio_unitario[x].value + cantidad[x].value + importe[x].value + "\n";
  15.     //alert("Se han encontrado los siguientes valores en elementos 'opcion1'\n" + texto);
  16.     }
  17. }

Donde...

cantidad_1
preciou_1

etc, son campos los IDs de campos de texto, el detalle es que no me corre el codigo con el getElementById, pero funciona perfecto con el getElementsByName
  #2 (permalink)  
Antiguo 16/01/2015, 09:59
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 6 meses
Puntos: 834
Respuesta: Funcion no funciona con getElementById

Recordá que los id son identificadores únicos: no puede haber, en el mismo documento, elementos diferentes con el mismo id
  #3 (permalink)  
Antiguo 16/01/2015, 10:13
 
Fecha de Ingreso: diciembre-2014
Mensajes: 60
Antigüedad: 10 años
Puntos: 1
Respuesta: Funcion no funciona con getElementById

De que manera lo podria ser, sin que sea por getElementsByName??, ya que eso sera un arreglo, pues puedo tener muchos conceptos y despues lo tengo que leer por $_POST, para asi mandarlo a un foreach
  #4 (permalink)  
Antiguo 16/01/2015, 10:21
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 6 meses
Puntos: 834
Respuesta: Funcion no funciona con getElementById

Podrías usar como name, algo como esto: cantidad_1[]

En php podrás leerlo a así:

Código PHP:
for($i=0;$i<count($_POST['cantidad_1']);$i++){echo $_POST['cantidad_1'][$i];} 
Y en javascript podrías referenciarlos así:
Código:
var els=document.getElementsByName('cantidad_1[]'),l=els.length,i=0;
for(;i<l;i++){
    alert(els[i]);
}
  #5 (permalink)  
Antiguo 16/01/2015, 10:26
 
Fecha de Ingreso: diciembre-2014
Mensajes: 60
Antigüedad: 10 años
Puntos: 1
Respuesta: Funcion no funciona con getElementById

No entendi muy bien esta parte...

,l=els.length,i=0;
  #6 (permalink)  
Antiguo 16/01/2015, 10:28
 
Fecha de Ingreso: diciembre-2014
Mensajes: 60
Antigüedad: 10 años
Puntos: 1
Respuesta: Funcion no funciona con getElementById

Estaba probando esta funcion...


Código Javascript:
Ver original
  1. function contar(){
  2.     var precio_unitario=document.getElementsByClassName("cantidad_1");
  3.     var cantidad=document.getElementsByClassName("preciou_1");
  4.     var importe=document.getElementsByClassName("importe_1");
  5.     var iva_concepto=document.getElementsByClassName("exceder_iva_1");
  6.     alert(precio_unitario.length);
  7.     for (x=0;x<precio_unitario.length;x++){
  8.     importe[x].value=precio_unitario[x].value*cantidad[x].value;
  9.     iva_concepto[x].value=importe[x].value*16/100;
  10.     texto = precio_unitario[x].value + cantidad[x].value + importe[x].value + "\n";
  11.     //alert("Se han encontrado los siguientes valores en elementos 'opcion1'\n" + texto);
  12.     }
  13. }

Esta vez con getElementsByClassName, que si lee los parametros, pero al parecer algo va mal con el for y su contenido
  #7 (permalink)  
Antiguo 16/01/2015, 10:56
 
Fecha de Ingreso: diciembre-2014
Mensajes: 60
Antigüedad: 10 años
Puntos: 1
Respuesta: Funcion no funciona con getElementById

alguna idea de que puede fallar en el bucle for??

for (x=0;x<precio_unitario.length;x++){
importe[x].value=precio_unitario[x].value*cantidad[x].value;
iva_concepto[x].value=importe[x].value*16/100;
texto = precio_unitario[x].value + cantidad[x].value + importe[x].value + "\n";
//alert("Se han encontrado los siguientes valores en elementos 'opcion1'\n" + texto);
}
  #8 (permalink)  
Antiguo 16/01/2015, 11:12
 
Fecha de Ingreso: diciembre-2014
Mensajes: 60
Antigüedad: 10 años
Puntos: 1
Respuesta: Funcion no funciona con getElementById

Ya lo consegui, resulto ser una tonteria con el valor del getElementsByClassName

Etiquetas: funcion, getelementbyid, valor
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 04:30.