Foros del Web » Programando para Internet » Javascript »

InnerHTML

Estas en el tema de InnerHTML en el foro de Javascript en Foros del Web. ¡Hola! Estoy usando innerHTML para cargar el contenido de un div de un menú, pero el caso es que escribiendo esto dentro del innerHTML no ...
  #1 (permalink)  
Antiguo 20/07/2007, 04:12
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años, 1 mes
Puntos: 36
InnerHTML

¡Hola! Estoy usando innerHTML para cargar el contenido de un div de un menú, pero el caso es que escribiendo esto dentro del innerHTML no funciona:
Código HTML:
<a onClick="mostrar('<form ACTION=scriptentra.php METHOD=POST name=entrar>  
 Nombre:
              <input type=checkbox name=recordn value=si>Recordar
          <input name=nombre type=text id=nombre size=14 maxlength=50>
          Contrase&ntilde;a:
          <input name=contrasena2 type=password id=contrasena size=14 maxlength=50/> <input type=submit value=Entrar>: <A target=_top HREF=registrarse.php>Reg&iacute;strate</A>     
          </form>')">Entrar</a> 
Y esta es la función mostrar():
Código PHP:
function mostrar(texto){
    var 
oculto document.getElementById("oculto");
    
oculto.innerHTML=texto;} 
¿Por qué no va? ¿Hay alguna alternativa a innerHTML? La página la podéis ver en la firma, es la pestaña de Entrar la que no funciona.
  #2 (permalink)  
Antiguo 20/07/2007, 04:53
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
Puntos: 834
Re: InnerHTML

Los saltos de línea en javascript son como el punto y coma: indican el final de una sentencia. Además, los atributos html deben ir entrecomillados (comillas dobles).
  #3 (permalink)  
Antiguo 20/07/2007, 05:12
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años, 1 mes
Puntos: 36
Re: InnerHTML

Cita:
Iniciado por Panino5001 Ver Mensaje
Los saltos de línea en javascript son como el punto y coma: indican el final de una sentencia.
No entiendo lo que quieres decir con eso.
Cita:
Iniciado por Panino5001 Ver Mensaje
Además, los atributos html deben ir entrecomillados (comillas dobles).
Ya sé que se ponen con comillas, pero si pongo comillas me sale aún peor. Es decir: si tengo esto así
onClick="mostrar('<form method=POST>')"
Y pongo esto:
onClick="mostrar('<form method="POST">')"
Me lo toma como si POST tuviera el mismo valor que onClick.
Alguna solución más? De todos modos, gracias.
  #4 (permalink)  
Antiguo 20/07/2007, 16:03
Avatar de D4RIO  
Fecha de Ingreso: julio-2007
Mensajes: 8
Antigüedad: 16 años, 9 meses
Puntos: 0
Re: InnerHTML

Por empezar, para Panino5001. JavaScript ignora espacios y saltos de línea, NO SE CONSIDERAN SEPARADORES.

Ahora, leí el script pero no entiendo qué es exactamente lo que querés que haga. Si me explicas por ahi puedo decirte de qué forma hacerlo bien.
  #5 (permalink)  
Antiguo 20/07/2007, 17:06
Avatar de Forze  
Fecha de Ingreso: diciembre-2004
Mensajes: 13
Antigüedad: 19 años, 4 meses
Puntos: 0
Re: InnerHTML

El problema es que esta tomando como que la cadena no esta correctamente terminada, debe estar en una misma linea:

Código HTML:
<a onClick="mostrar('<form ACTION=scriptentra.php METHOD=POST name=entrar> Nombre: <input type=checkbox name=recordn value=si> Recordar <input name=nombre type=text id=nombre size=14 maxlength=50> Contrase&ntilde;a: <input name=contrasena2 type=password id=contrasena size=14 maxlength=50/> <input type=submit value=Entrar>: <A target=_top HREF=registrarse.php>Reg&iacute;strate</A></form>')">Entrar</a> 
esta funcion es correcta

Código PHP:
function mostrar(texto) {
    var 
oculto document.getElementById("oculto");
    
oculto.innerHTML=texto;

  #6 (permalink)  
Antiguo 20/07/2007, 20:38
 
Fecha de Ingreso: abril-2006
Mensajes: 40
Antigüedad: 18 años, 1 mes
Puntos: 0
Re: InnerHTML

<a onClick="mostrar('<form ACTION=scriptentra.php METHOD=POST name=entrar>

, no cierras el ), es sólo por eso.
  #7 (permalink)  
Antiguo 21/07/2007, 04:48
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
Puntos: 834
Re: InnerHTML

Cita:
Iniciado por D4RIO Ver Mensaje
Por empezar, para Panino5001. JavaScript ignora espacios y saltos de línea, NO SE CONSIDERAN SEPARADORES.

Ahora, leí el script pero no entiendo qué es exactamente lo que querés que haga. Si me explicas por ahi puedo decirte de qué forma hacerlo bien.
Estás equivocado y en algo básico:
Código PHP:
<script>
alert('hola')
//se ejecuta correctamente
</script>
<script>
alert('ho
la')
/*
Error: unterminated string literal
Archivo de origen: http://localhost/barbarini/Untitled-1.php
Línea: 2, columna: 6
Código fuente:
alert('ho
*/
</script>
<script>
alert('hola')
alert('chau')
//se ejecuta correctamente porque el salto de línea separa las instrucciones como un punto y coma
</script>
</script>
<script>
alert('hola');
alert('chau');
//se ejecuta correctamente porque el punto y coma separa las instrucciones 
</script>
<script>
alert('hola');alert('chau');
//se ejecuta correctamente porque el punto y coma separa las instrucciones 
</script>
<script>
alert('hola') alert('chau')
/*
Error: missing ; before statement
Archivo de origen: http://localhost/barbarini/Untitled-1.php
Línea: 2, columna: 14
Código fuente:
alert('hola') alert('chau');
*/
//los espacios no separan instrucciones
</script>
<script>
alert('hola') alert('chau')
/*
Error: missing ; before statement
Archivo de origen: http://localhost/barbarini/Untitled-1.php
Línea: 2, columna: 14
Código fuente:
alert('hola') alert('chau')
*/
//los espacios no separan instrucciones
</script> 
  #8 (permalink)  
Antiguo 21/07/2007, 05:11
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
Puntos: 834
Re: InnerHTML

Y lo que querés hacer podría ser así, donde txt no debe tener ningún salto de línea que estropee las acciones:
Código PHP:
<html>
<
head>
<
script>
var 
txt='<form action=\"scriptentra.php\" method=\"POST\" name=\"ENTRAR\">Nombre:<input type=\"checkbox\" name=\"recordn\" value=\"si\">Recordar<input name=\"nombre\" type=\"text\" id=\"nombre\" size=\"14\" maxlength=\"50\">Contrase&ntilde;a:<input name=\"contrasena2\" type=\"password\" id=\"contrasena\" size=\"14\" maxlength=\"50\" /> <input type=\"submit\" value=\"Entrar\">: <a target=\"_top\" href=\"registrarse.php\">Reg&iacute;strate</a></form>'
function mostrar(texto){
    var 
oculto document.getElementById("oculto");
    
oculto.innerHTML=texto;}  
</script>
</head>
<body>
<a href="#" onclick="mostrar(txt)">Entrar</a>
<div id="oculto"></div>
</body>
</html> 
Pero en ralidad sería preferible esto otro:
Código PHP:
<html>
<
head>
</
head>
<
body>
<
a href="#" onclick="document.getElementById('oculto').style.display='block'">Entrar</a>
<
div id="oculto" style="display:none"><form action="scriptentra.php" method="POST" name="ENTRAR">Nombre:<input type="checkbox" name="recordn" value="si">Recordar<input name="nombre" type="text" id="nombre" size="14" maxlength="50">Contrase&ntilde;a:<input name="contrasena2" type="password" id="contrasena" size="14" maxlength="50" /> <input type="submit" value="Entrar">: <a target="_top" href="registrarse.php">Reg&iacute;strate</a></form></div>
</
body>
</
html

Última edición por Panino5001; 21/07/2007 a las 05:20
  #9 (permalink)  
Antiguo 23/07/2007, 13:09
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años, 1 mes
Puntos: 36
Re: InnerHTML

A ver, ya he vuelto de las vacaciones, os respondo a todos:
Forze:
Ya he probado como tú dices y no funciona.
Seeker:
Sí que cerré el paréntesis, lo he comprobado.
Panino5001:
He probado como tú dices y sale esto:
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:20.