Foros del Web » Programando para Internet » Javascript »

validaciones luego createElement() DOM

Estas en el tema de validaciones luego createElement() DOM en el foro de Javascript en Foros del Web. después de crear los elementos en el form... hay forma de validarlos antes que mande el submit? las validaciones me funcionan bien si los elementos ...
  #1 (permalink)  
Antiguo 22/02/2006, 05:30
Avatar de Bartak  
Fecha de Ingreso: enero-2004
Ubicación: Chilito
Mensajes: 121
Antigüedad: 20 años, 3 meses
Puntos: 0
validaciones luego createElement() DOM

después de crear los elementos en el form... hay forma de validarlos antes que mande el submit? las validaciones me funcionan bien si los elementos del form no son creados con DOM... esto lo saque desde un post anterior y alguien tambien tuvo el mismo problema hace años :P... pero no pude averiguar si se puede validar los elementos creados. el script de validacion apunta bien al elemento que se crea pero fallo al tomar el valor de los inputs,

me tira como error: "nombre_input" no esta definido...


esto lo encontre desde este post:
http://www.forosdelweb.com/showthrea...=createElement

caricatos puso unos link muy guenos aprendi harto de ellos
uno estaba roto, este es : http://www.linti.unlp.edu.ar/tiki-se...om&where=pages

desde ya muchas gracias
__________________
"Llegado el momento supervisare my propia caida" - Alvaro Henriquez
  #2 (permalink)  
Antiguo 22/02/2006, 10:44
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola Bartak:

Me alegra saber que te sirven mis mensajes, y es cierto lo del enlace roto, pero en otros sevidores no se puede hacer nada...

En algunos navegadores es mejor agregar los atributos con setAttribute y llerlos con getAttribute... prueba a crear el atributo con setAttribute y nos cuentas...

var input = createElement("input");
input.setAttribute("name", "nombre1");
...
elFormQueSea.appendChild(input);

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 22/02/2006, 12:51
Avatar de Bartak  
Fecha de Ingreso: enero-2004
Ubicación: Chilito
Mensajes: 121
Antigüedad: 20 años, 3 meses
Puntos: 0
Hola caricatos, gracias por contestar :)

agrego elementos asi:
cod_este es el id de un <td>

var cod_asig = document.getElementById(cod_este);
if (cod_asig.hasChildNodes()) {cod_asig.removeChild(cod_asig.lastChild);}
var cod_asig=document.createElement("input");
cod_asig.setAttribute("type","text"); ";
cod_asig.setAttribute("name","id_ramo_n"); ";
cod_asig.setAttribute("value","");
document.getElementById(cod_este).appendChild(cod_ asig);

pero cuando trato de validar que el campo no sea null me tira un error "id_ramo_n" no esta definido...

with(document.nom_form){
if(id_ramo_n.value=="")
{
id_ramo_n.focus();
alert("Ingrese el codigo del nuevo ramo"); return false;
}
.......
}


saludos
__________________
"Llegado el momento supervisare my propia caida" - Alvaro Henriquez
  #4 (permalink)  
Antiguo 22/02/2006, 13:17
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Después de pelearme un poco con mi probador de scripts, he conseguido algo que funciona en mozilla y explorer (te toca probarlo en los demás...)

Código:
<html>
<head>
<title>
	Prueba
</title>
<script type="text/javascript">
function ponerInput(form, name) {
var Input = document.createElement("input");
form.appendChild(Input);
Input["type"] = "text";
Input.id = name;
Input.setAttribute("NAME", name);
}
</script>
</head>
<body >
<form name="prueba" >
sumar Input:<input type="text" name="nuevo" /> 
<input type="button" onclick="ponerInput(this.form, nuevo.value)" value="añadir"/>
<input type="button" onclick="alert(this.form.innerHTML)" value="dato..."/>
<br />
</form>
</body>
</html>
Espero que te sirva... en este caso muestra la estructura del formulario, pero se ve el añadido del input con su atributo name... que hay que ponerlo con mayúsculas... me pareció muy extraño

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 22/02/2006, 13:34
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Cita:
Iniciado por caricatos
hay que ponerlo con mayúsculas...
Yo también estuve peleandome con el código, pero perdí Nunca se me hubiera ocurrido eso. También puede ponerse Input.NAME = name;

Saludos,

P.D. En Opera funciona bien.
  #6 (permalink)  
Antiguo 22/02/2006, 13:40
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Cita:
Iniciado por JavierB
Yo también estuve peleandome con el código, pero perdí Nunca se me hubiera ocurrido eso. También puede ponerse Input.NAME = name;

Saludos,

P.D. En Opera funciona bien.
Gracias por la confirmación... ¡Je, je! nos lo apuntamos ¡verdad!

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 23/02/2006, 15:41
Avatar de Bartak  
Fecha de Ingreso: enero-2004
Ubicación: Chilito
Mensajes: 121
Antigüedad: 20 años, 3 meses
Puntos: 0
hola amigos!... gracias por su ayuda... ahora valido sin problemas :)

me di cuenta que al no poner el valor id=’nombre’ no pude validar los elementos que creo pero si lo agrego si…

estuve viendo como agregar eventos al input pero tengo una duda

function foo(){

}

var Input=document.createElement("input");
document.getElementById(cod_este).appendChild(Inpu t);
Input.setAttribute("type","text"); ";
Input.setAttribute("id","nombre_");
Input.setAttribute("name","nombre_");
Input.addEventListener("change", foo, false);

Pero funciona solo para fire fox para explorer me tira una error… no puedo agregar el evento
Habra una forma de hacerlo para explorer

saludos
__________________
"Llegado el momento supervisare my propia caida" - Alvaro Henriquez
  #8 (permalink)  
Antiguo 23/02/2006, 15:48
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

La forma de añadir eventos en explorer es con attachEvent... la sintaxis es algo distinta... solo lleva 2 parámetros, el evento (con el "on" delante) y la función...

Para tu caso me parece que sería así:

Input.attachEvent("onchange", foo);

Si no te sale, puedes echar un vistazo a mi inspector DOM: http://www.pepemolina.com/DOM/index.html (el código está en un fichero js)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 22:31.