Foros del Web » Programando para Internet » Javascript »

innerHTMl funciona a veces

Estas en el tema de innerHTMl funciona a veces en el foro de Javascript en Foros del Web. Buenas, Llevo ya algún tiempo con un problema con javascript, no he sido capaz de encontrar solución, a ver si alguien me pudiera ayudar. La ...
  #1 (permalink)  
Antiguo 06/02/2012, 13:48
 
Fecha de Ingreso: febrero-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
innerHTMl funciona a veces

Buenas,

Llevo ya algún tiempo con un problema con javascript, no he sido capaz de encontrar solución, a ver si alguien me pudiera ayudar.

La situación es:
<input type="text" id="textoPer" onKeyUp="cambiarTexto(this.value,'cajaPer'')"/>
//nota: cajaPer puede ser cajaper, cajaper1, cajaper2 en base a unas condiciones

<div id="pvp">25</div>
<div id="cajaper"></div>
<div id="cajaper1"></div>
<div id="cajaper2"></div>

Mi función cambiar texto modifica el texto de cajaperX por el del input, con un
document.getElementById(cajaperX).innerHTML=texto;

Pero cuando haya algún texto introducido tengo que modificar el precio del producto.

Problema: De los 3 productos que usan esta lógica, 1 funciona perfectamente y los otros 2 no, y mi conclusión es porque no puede detectar si la longitud del texto del input es >0, pero ¿por qué en uno sí y en otro no?

También agradecería si alguien supiera cómo se llama este problema para poder seguir buscando.

Muchas gracias de antemano.

Saludos
  #2 (permalink)  
Antiguo 06/02/2012, 14:19
 
Fecha de Ingreso: diciembre-2011
Mensajes: 98
Antigüedad: 12 años, 4 meses
Puntos: 29
Respuesta: innerHTMl funciona a veces

No se si te has fijado que hay dos comillas en el input:

Código:
<input type="text" id="textoPer" onKeyUp="cambiarTexto(this.value,'cajaPer'')"/>
Me parece que es eso, pero no estoy muy seguro...
  #3 (permalink)  
Antiguo 07/02/2012, 09:07
 
Fecha de Ingreso: febrero-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: innerHTMl funciona a veces

Gracias por responder, he comprobado lo que me dices, pero ha sido error al quitar código, para no poner aquí todo el contenido que son básicamente las sentencias if que hacen que aparezca cajaPer, cajaPer1, cajaPer2.


Gracias.
  #4 (permalink)  
Antiguo 07/02/2012, 09:47
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: innerHTMl funciona a veces

No sé bien que es lo que no te funciona
Probá asi
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6.  
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. function cambiarTexto(texto,cajaperX){
  10. var elTexto =document.getElementById(cajaperX);
  11. var longitud = document.getElementById('textoPer').value;
  12. var elPrecio = document.getElementById('pvp');
  13.  
  14. elTexto.innerHTML = texto;
  15. if(longitud.length > 0){
  16. alert(longitud.length);
  17. elPrecio.innerHTML = "cambio el numero";
  18. }else{
  19. elPrecio.innerHTML = "25";
  20. }
  21. }
  22. //]]>
  23. </head>
  24. <form action="#">
  25. <input type="text" id="textoPer" onKeyUp="cambiarTexto(this.value,'cajaPer');"/>
  26. </from>
  27.  
  28. <div id="pvp">25</div>
  29. <div id="cajaPer"></div>
  30.  
  31. </body>
  32. </html>
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 08/02/2012, 12:43
 
Fecha de Ingreso: febrero-2012
Mensajes: 8
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: innerHTMl funciona a veces

Muchas gracias por la respuesta.

He estado probando todo lo que me dices pero no hay forma, de hecho ahora ya ni funciona lo que antes funcionaba.


Señores, estoy en la parra. Resulta que en uno de los casos estaba intentado obtener el contenido de una caja que no existía:

document.getElementById(cajaperX)

donde no existe cajaperX. (ahora tengo que ver cómo comprobar que el id="cajaperX" existe)

Siento las molestias.

Muchísimas gracias.

Saludos

Última edición por josanlopez; 08/02/2012 a las 13:00

Etiquetas: funcion, html, innerhtml, input, veces
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:05.