Foros del Web » Programando para Internet » Javascript »

Problemas con mi formulario

Estas en el tema de Problemas con mi formulario en el foro de Javascript en Foros del Web. Buenas a Todos, os posteo el código de lo que pretendo hacer para que veais lo que intento hacer. Código: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML ...
  #1 (permalink)  
Antiguo 29/07/2005, 01:34
Avatar de TheWolF  
Fecha de Ingreso: junio-2005
Mensajes: 24
Antigüedad: 18 años, 10 meses
Puntos: 0
Pregunta Problemas con mi formulario

Buenas a Todos,

os posteo el código de lo que pretendo hacer para que veais lo que intento hacer.

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Document sans nom</title>
</head>

<body>
<script language="javascript" type="text/javascript">

function slctr(texto,valor){
this.texto = texto
this.valor = valor
}
var empresa=new Array()
empresa[0] = new slctr('- - Seleccionar - -')
empresa[1] = new slctr("Documento",'0')
empresa[2] = new slctr("CIF",'1')

var trabajadores=new Array()
trabajadores[0] = new slctr('- -Seleccionar- -')
trabajadores[1] = new slctr("Documento",'2')
trabajadores[2] = new slctr("DNI",'3')


function slctryole(cual,donde){
if(cual.selectedIndex != 0){
   donde.length=0
   cual = eval(cual.value)
   for(m=0;m<cual.length;m++){
      var nuevaOpcion = new Option(cual[m].texto);
      donde.options[m] = nuevaOpcion;
      if(cual[m].valor != null){
         donde.options[m].value = cual[m].valor
         }
      else{

          donde.options[m].value = cual[m].texto

         }
      }
   }
}


function agregarcampo(id){
	if((id == 0) && (document.getElementById('Documento') == null))
	{
		alert("Traza: \n" + "id: " + id + "\n" + "Documento: " + document.getElementById('Documento'));
		var campo=document.createElement("INPUT");
		campo.setAttribute("type","text");
		campo.setAttribute("name","Documento");
		campo.setAttribute("value","El contenido");
		document.getElementsByName("filtro")[0].appendChild(campo);
		alert("Creo el Campo")
	}
	else
	{
	alert(id + " Elimino el campo Documento");
	}
} 

</script>

<form name="filtro" method="post" action="">
   <select name="select" onchange="slctryole(this,this.form.select2)">
    <option>- - Seleccionar - -</option>
    <option value="empresa">Empresa</option>
    <option value="trabajadores">Trabajadores</option>
  </select>
  <select name="select2" onchange="agregarcampo(this.value)">
    <option>- - - - - -</option>
  </select>
 </form>
</body>
</html>
Bueno pues el asunto está que agrego un campo más a mi formulario sin problemas, pero luego para comprobar si existe o no el campo, simplemente lo que hago es sacar un alert, pero es que me sigue creando un campo más...

La idea es hacer un filtro personalizado, que aunque en este ejemplo tendrán siempre un input text, no siempre agregaré un mismo tipo de objeto de formulario. Eso dependerá de la selección del primer combo.

A ver si me podéis echar un cable. Gracias y un saludo.

  #2 (permalink)  
Antiguo 29/07/2005, 02:31
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Prueba a cambiar el if de agregar campo por este:

if((id == 0) && !document.getElementById('Documento'))

__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #3 (permalink)  
Antiguo 29/07/2005, 03:00
Avatar de TheWolF  
Fecha de Ingreso: junio-2005
Mensajes: 24
Antigüedad: 18 años, 10 meses
Puntos: 0
Buenas Karlankas,

El comportamiento es exactamente el mismo. Te explico lo que hago:

1. Selecciono empresa.
2. Seleccion documento, entonces se crea un input nuevo.
3. Selecciono "seleccionar" que es una opción sin valor.
4. Vuelvo a seleccionar Documento y me vuelve a crear otro input...

Lo que necesito es que no me lo cree... ;)

A ver si me puedes echar un cable...


Gracias y un saludo.
  #4 (permalink)  
Antiguo 29/07/2005, 03:41
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
Prueba con esto:
Código PHP:
function agregarcampo(id){
if((
id == 0) && !document.getElementById('Documento'))
    {
        
alert("Traza: \n" "id: " id "\n" "Documento: " document.getElementById('Documento'));
        var 
campo=document.createElement("INPUT");
        
campo.setAttribute("type","text");
        
campo.setAttribute("name","Documento");
        
campo.setAttribute("id","Documento");
        
campo.setAttribute("value","El contenido");
        
document.getElementsByName("filtro")[0].appendChild(campo);
        
alert("Creo el Campo")
    }
    else
    {
    
hijo=document.getElementById("Documento");
    
padre=hijo.parentNode;
    
padre.removeChild(hijo);
    
alert(id " Elimino el campo Documento");
    }

__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
  #5 (permalink)  
Antiguo 29/07/2005, 04:01
Avatar de TheWolF  
Fecha de Ingreso: junio-2005
Mensajes: 24
Antigüedad: 18 años, 10 meses
Puntos: 0
Perfecto Karlankas, eres un crack :)


Gracias y un saludo.
  #6 (permalink)  
Antiguo 29/07/2005, 04:24
Avatar de KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 4 meses
Puntos: 61
De nada!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:52.