Ver Mensaje Individual
  #9 (permalink)  
Antiguo 19/09/2010, 13:56
Avatar de _cronos2
_cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 8 meses
Puntos: 310
Respuesta: Validación formulario

Vale, solucioné lo del select y lo hice como tú decías, pero ahora me surge un problema. Cuando hago click en el botón Agregar campo, se crean 2, uno para las coordenadas x y otro para las y. Pero si hago click en Eliminar campo, sólo se elimina el campo que está al lado del botón. Con el código creo que se verá mejor:
Código Javascript:
Ver original
  1. // Agregar campos
  2. var n=1;
  3. function ID(id){
  4.  return document.getElementById(id);
  5. }
  6. function sAt(elemento, atributo, valor){
  7.  elemento.setAttribute(atributo, valor);
  8. }
  9. function addI(e,f){
  10.  var c=document.createElement(e),i=document.createElement(e),b=document.createElement(e),a=document.createElement(e),l=document.createElement(f),s=document.createElement(f);
  11.  sAt(c,'type','text');
  12.  sAt(i,'type','text');
  13.  sAt(c,'name','coordx[]');
  14.  sAt(i,'name','coordy[]');
  15.  sAt(c,'id','cx'+n);
  16.  sAt(i,'id','cy'+n);
  17.  sAt(c,'size','10');
  18.  sAt(i,'size','10');
  19.  sAt(c,'class','input');
  20.  sAt(i,'class','input');
  21.  sAt(a,'type','button');
  22.  sAt(b,'type','button');
  23.  sAt(a,'onclick',"removeI(this,valor(this));");
  24.  sAt(b,'onclick',"removeI(this,valor(this));");
  25.  sAt(a,'value','Eliminar campo');
  26.  sAt(b,'value','Eliminar campo');
  27.  ID('inicio').appendChild(c);
  28.  ID('inicio').appendChild(a);
  29.  ID('inicio').appendChild(l);
  30.  ID('final').appendChild(i);
  31.  ID('final').appendChild(b);
  32.  ID('final').appendChild(s);
  33.  n++;
  34. }
  35. function removeI(c,id){
  36.  c.parentNode.removeChild(c.previousSibling);
  37.  c.parentNode.removeChild(c);
  38.  c.parentNode.removeChild(c.nextSibling);
  39.  ID(id).parentNode.removeChild(ID(id).previousSibling);
  40.  ID(id).parentNode.removeChild(ID(id));
  41.  ID(id).parentNode.removeChild(ID(id).nextSibling);
  42.  n--;
  43. }
  44. function valor(c){
  45.  var s=c.id.substring(1,2);
  46.  var d='c'+(s=='x')?'y':'x'+n;
  47.  return d;
  48. }
Código HTML:
Ver original
  1. <fieldset style='width:20%;' id='f'>
  2.  <legend>Coordenadas:</legend>
  3.  <br />
  4.  <span class="texto">&nbsp;X:</span>
  5.  <input type='text' id='cx0' name='coordx[]' size='15'/>
  6.  <span id='inicio'></span>
  7.  <br /><br /><br />
  8.  <span class="texto">&nbsp;Y:</span>
  9.  <input type='text' id='cy0' name='coordy[]' size='15' />
  10.  <br />
  11.  <span id='final'></span>
  12.  <br />
  13. </fieldset>  
  14. <input type="button" value="Agregar campo" id='btn' onclick="addI();" />
He probado usando una función (valor) que devoviera el id del campo, pero no me funciona. También me gustaría saber cómo hacer para que a la función sAt() no tuviera que pasarle el elemento como argumento, sino hacer elemento.sAt(atributo,valor).
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red