Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/02/2013, 12:51
Avatar de freesoftwarrior
freesoftwarrior
 
Fecha de Ingreso: marzo-2006
Mensajes: 362
Antigüedad: 18 años, 8 meses
Puntos: 10
Manipular contenido dinámico del tag fieldset

Buenas tardes:
Tengo este código para crear campos input de manera dinámica

Cita:
icremento =0;
function crear(obj)
{
icremento++;

field = document.getElementById('field');
contenedor = document.createElement('div');
contenedor.id = 'div'+icremento;
field.appendChild(contenedor);

var dHora=new Date()
var res = String(dHora.getHours()) + ":" + String(dHora.getMinutes()) + ":" + String(dHora.getSeconds());
boton = document.createElement('input');
boton.type = 'text';
boton.name = 'hora'+icremento;
boton.value = res;
boton.size = 10;
boton.style.border = "1px";
boton.style.background = "#4F6497";
boton.style.color = "white";
boton.style.font = "x-small Arial";
contenedor.appendChild(boton);

boton = document.createElement('input');
boton.type = 'text';
boton.name = 'text'+icremento;
boton.id = 'text'+icremento;
boton.size = 10;
boton.style.border = "1px solid white";
boton.style.background = "#4F6497";
boton.style.color = "white";
boton.style.font = "x-small Arial";
boton.onchange = function () {formato(this.value,'dec',this.id)}
boton.onkeypress = function () {return acceptNum2(event,this.id)}
contenedor.appendChild(boton);

boton = document.createElement('input');
boton.type = 'image';
boton.src = 'imagenes/png/eliminar_registro.png';
boton.width = "18";
boton.height = "18";
boton.name = 'div'+icremento;
boton.onclick = function () {borrar(this.name)}
contenedor.appendChild(boton);
}

function borrar(obj)
{
field = document.getElementById('field');
field.removeChild(document.getElementById(obj));
}
Y el HTML es el siguiente

Cita:
<form name="ingPesaje02" id="ingPesaje02">

<fieldset id="field" style="overflow: auto; width: 250px; height:115px; border:0px solid red;"></fieldset>

<input type="button" name="adicionar" id="adicionar" value="Adicionar Peso" class="botones" onClick="crear(this)">

</form>


Funciona bien, pero lo que necesito es que, luego de procesar la información necesito "resetear" el fieldset, es decir, eliminar todos los campos inputs que he creado.

He probado poner, al final de la función javascript que envía los datos a la página que los procesará, la siguiente instrucción (por si acaso primero se abre una ventana adicional para ingresar usuario y password, por eso el parent.opener)

parent.opener.document.getElementById("ingPesaje02 ").reset();

y lo único que logro es que los campos creados se pongan en blanco PERO siguen presentes. También probé algo más básico como

parent.opener.document.getElementById("field").val ue="";

pero no pasa nada.
También probé llamando a la función borrar pasandole el name del input de esta forma

parent.opener.borrar("texto1");

pero no pasa nada de nada.
Como el resultado de la operación de ingreso de datos se realiza en un iframe de la página principal, al terminar dicho proceso de ingreso agregué esta instrucción

parent.borrar("texto1");

pero tampoco funcionó ni siquiera copiando la función de borrar en la página principal.

¿Alguna sugerencia?

Un saludo desde Lima, Perú