Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/08/2009, 12:24
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 7 meses
Puntos: 1485
Respuesta: Urgente ayuda sobre creacion de text fields adicionales con js

sucede que los campos no tienen un valor predeterminado. de modo que cuando usas innerHTML este toma la fuente original y la vuelve a escribir en el documento. o sea, lo que el usuario escribe no queda grabado en el atributo value. para comprobarlo, intenta tomar el valor con el metodo getAttribute("value"), veras que te devuelve un string vacio independientemente lo que el usuario escribio. la solucion es simplemente usar metodos del DOM para crear los elementos en lugar de innerHTML.

Código:
<script language="javascript">
$nummaxrooms=1;
fields = 0;
function addInput() {
if (fields < 5){
var target = document.getElementById('text');
var p = document.createElement("p");

p.appendChild(setText("Room type name: "));
p.appendChild(setInput("text", "roomtypename"+fields, "style10"));
p.appendChild(setText("Quantity: "));
p.appendChild(setInput("text", "roomqty"+fields, "style10"));
p.appendChild(setText("Rack Price us$: "));
p.appendChild(setInput("text", "roomrackprice"+fields, "style10"));
target.appendChild(p);
fields++;
}else{
alert("Sólo se pueden 5 registros.");
document.form.add.disabled=true;return;
}

function setText(text){
return document.createTextNode(text);
}

function setInput(type, name, classname){
var input = document.createElement("input");
input.setAttribute("type", type);
input.setAttribute("name", name);
input.className = classname;
return input;
}
}

</script>
<input type="button" onclick="addInput()" name="add" value="(+) Aumenta un campo de texto" />
<p id="text"></p>
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 12/08/2009 a las 20:55 Razón: corrigiendo el codigo