Foros del Web » Programando para Internet » Javascript »

Problema con document.write(<div...

Estas en el tema de Problema con document.write(<div... en el foro de Javascript en Foros del Web. Hola de nuevo, Tengo un problema a la hora de dibujar un layer en una página al pulsar un botón. Cuando se pulsa el botón ...
  #1 (permalink)  
Antiguo 23/02/2006, 07:24
Avatar de Callaghan  
Fecha de Ingreso: enero-2006
Mensajes: 58
Antigüedad: 18 años, 3 meses
Puntos: 1
Problema con document.write(<div...

Hola de nuevo,

Tengo un problema a la hora de dibujar un layer en una página al pulsar un botón. Cuando se pulsa el botón siguiente:

Cita:
<input name="Button" type="button" id="Button" value="Añadir otra" onclick="añadirotras()" />
se invoca la función añadirotras(), definida en el script así:

Cita:
function añadirotras(){
<%=i=i+1%>;
var indice=<%=i%>;
var nombre="otras"+indice;
document.write('<div id="nombre" style="position:absolute; width:114px; height:34px; background-color: #000000; z-index:11; left: 64px; top: 463;"><input name="otrastext" type="text" id="otrastext" size="15"/> </div>');}
i es una variable definida fuera del script como <%!int i=0;>

El primer problama que tengo es que me crea la capa pero en otra nueva página, y me gustaría que me la dibujara en la propia página donde viene definida la función. También me gustaría saber como puedo hacer que la propieda top del layer sea igual a la variable indice.

Otra cosa que no entiendo es por qué por muchas veces que pulse el botón la variable indice continua valiendo 1.

Un saludo y gracias de antemano
  #2 (permalink)  
Antiguo 23/02/2006, 10:09
 
Fecha de Ingreso: febrero-2006
Mensajes: 8
Antigüedad: 18 años, 2 meses
Puntos: 0
Esta mal, para que te aumente en 1 ese contador java tienes que hacer lo siguiente:

function añadirotras()
{
<%
i=i+1;
%>
var indice=<%=i%>;
var nombre="otras"+indice;
document.write('<div id="nombre" style="position:absolute; width:114px; height:34px; background-color: #000000; z-index:11; left: 64px; top: 463;"><input name="otrastext" type="text" id="otrastext" size="15"/> </div>');
}

si pones <%=variable%> lo que haces es asignar el valor de la variable java.
si pones <% codigo java con sus ; al final como maradona manda %> te ejecuta el codigo sin problemas.

Para lo demas, investiga innerHtml.
  #3 (permalink)  
Antiguo 23/02/2006, 10:14
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Document.write sólo sirve a la hora de cargar la página. Una vez mostrada la página no puedes usarlo porque lo tomará como un documento nuevo. Sería preferible usar DOM o innerHTML. Muestranos un poco más del código y te diremos como ponerlo...

El hecho de uqe no se incremente la variable i es porque cada vez que usas el document.write genera una página nueva. Y como es Javascript pues no guarda el valor.

Espero que lo que te he puesto te haya aclarado algo.
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #4 (permalink)  
Antiguo 23/02/2006, 11:46
Avatar de Callaghan  
Fecha de Ingreso: enero-2006
Mensajes: 58
Antigüedad: 18 años, 3 meses
Puntos: 1
Hola, gracias por responder.

Tengo un layer que tiene un campo de texto y un boton (añadir mas campos), quiero que al pulsar el boton, me salga un campo nuevo en la posicion de layer que yo le indique, como se hace esto??
¿¿Tal vez seria mejor hacer una tabla dentro del layer e ir metiendo los nuevos campos en filas de la tabla (asi me quedaria cada campo uno debajo de otro)??
¿Como puedo hacer para que se me creen nuevas filas en la tabla, y el nuevo input me lo meta en la fila nueva?

Última edición por Callaghan; 23/02/2006 a las 17:54
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 14:30.