Ver Mensaje Individual
  #13 (permalink)  
Antiguo 20/09/2010, 16:41
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, 8 meses
Puntos: 1485
Respuesta: Validación formulario

otro ejemplo utilizando cloneNode y el objeto event para determinar que el evento haya ocurrido en el elemento correcto.
Código:
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Test Development</title>
<script type='text/javascript'>
self.onload = function(){
var list = document.getElementById("coords"), clone = list.firstChild.cloneNode(true);
document.getElementById('btn').onclick = function(){
list.appendChild(clone.cloneNode(true));
};

list.onclick = function(_evt){
var evt = _evt || event, elem = evt.target || evt.srcElement;
if(/input/i.test(elem.nodeName) && /button/i.test(elem.type))list.removeChild(elem.parentNode);
};
}; //onload;
</script>
<style type='text/css'>
fieldset{
width:24em;
}

li input[type="text"]{
width:6em;
margin-right:2em;
}
</style>
</head>

<body>
<fieldset><legend>Coordenadas:</legend>
<ol id="coords"><li>X: <input type='text' name='coordx[]' /> Y: <input name="coordy[]" type="text" /> <input type="button" value="x" /></li>
</ol></fieldset>  
<input type="button" value="Agregar campo" id='btn' />
</body></html>
critica del codigo... no le veo sentido a la funcion setA. practicamente estas haciendo lo mismo que invocar la funcion setAttribute. pero como te decia, con cloneNode no necesitas asignar los atributos que comparten el mismo valor como name.

@edit: en el ejemplo no aparece el campo hidden que te sugeri antes... pues como te comentaba, es mejor que obtengas la longitud del array desde lenguaje servidor, asi obtienes control de ese dato en lugar de indicarlo desde javascript y correr el riesgo de que introduzcan otra informacion antes de enviarse.
Código PHP:
$registros count($_REQUEST['coordx']); 
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 20/09/2010 a las 19:19