Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/05/2010, 01:34
gspablo
 
Fecha de Ingreso: octubre-2009
Mensajes: 223
Antigüedad: 15 años, 3 meses
Puntos: 2
Crear nuevo campo en formulario

Buenas, estoy haciendo un formulario donde el ultimo campo puede rellenarse una o varias veces, me explico, quiero que si el usuario desea le de a un link y aparezca otro campo abajo del que se crea por defecto en el formulario para rellenar el que viene de serie mas ese o esos, según los que haya creado, así hasta por ejemplo 5.

Según el código que tengo, se crean los nuevos campos pero luego no se eliminan. También me gustaria saber cuando mando el formulario en que variables puedo recoger esos valores, creo que lo mejor seria un array y lo voy recorriendo en php con un each, pero eso no se como ponerlo en este código. También corregir para borrar el ultimo campo que no se donde tengo el fallo

Código HTML:
Ver original
  1. <tr>
  2. <td>Email principal:</td>
  3. <td><INPUT TYPE="text" NAME="email0"></td>
  4. </tr>
  5. <tr id="emailNode">
  6. <td colspan="2"><CENTER id="mailManagment"><A HREF="javascript:newMail()">Agregar otro mail</A>&nbsp;</CENTER></td>
  7. </tr>
  8.  
  9. <tr>
  10. <td><INPUT TYPE="submit"></td><td><INPUT TYPE="reset"></td>
  11. </tr>

Código Javascript:
Ver original
  1. <SCRIPT LANGUAGE="JavaScript">
  2. var mailcount = 0;
  3. function cerrar(obj){
  4. email=document.getElementById("emailNode"); email.parentNode.removeChild(email.parentNode.childNodes[mailcount+7]);
  5. mailcount --;
  6. if (mailcount==0){
  7. //retirar el código para borrar la última dirección de mail document.getElementById("mailManagment").removeChild(document.getElementById("cerrarMail"));
  8. }
  9. }
  10.  
  11. function newEntry(inputName,text){
  12. newInput = document.createElement("input");
  13. newInput.type="text";
  14. newInput.name=inputName;
  15. newNode = document.createElement("tr");
  16. newNode.appendChild(document.createElement("td"));
  17. newNode.appendChild(document.createElement("td"));
  18. newNode.firstChild.appendChild(document.createTextNode(text));
  19. newNode.lastChild.appendChild(newInput);
  20. return newNode;
  21. }
  22.  
  23. function newMail(){
  24. mailcount ++;
  25. email=document.getElementById("emailNode");
  26. //Creo el nuevo campo
  27. newNode=newEntry("email"+mailcount,"Email alternativo "+mailcount+":");
  28. //Muestro el nuevo campo
  29. email.parentNode.insertBefore(newNode,email);
  30.  
  31. //Agregar el código para borrar el último mail
  32. if (mailcount==1){
  33. newClose = document.createElement("a");
  34. newClose.id="cerrarMail";
  35. newClose.href="javascript:cerrar(this)";
  36. newClose.appendChild(document.createTextNode("Borrar último"));
  37. document.getElementById("mailManagment").appendChild(newClose);
  38. }
  39. }
  40. </SCRIPT>

Última edición por gspablo; 31/05/2010 a las 01:37 Razón: No aparece todo el codigo