Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/10/2013, 12:24
Avatar de andresbetancourt
andresbetancourt
 
Fecha de Ingreso: julio-2008
Ubicación: colombia
Mensajes: 334
Antigüedad: 16 años, 5 meses
Puntos: 2
problema con DOM ajax

buenas tardes,

espero que esten bien

tengo el siguiente problema:

uso el complemento LIVEVALIDATION (http://livevalidation.com/examples)

para validar los campos de un formulario.

el formulario es cargado en la pagina HTML maestra de forma dinamica con AJAX

al hacer esto, las validaciones con LIVEVALIDATION no funcionan pero

cuando el formulario no se carga con AJAX sino que se incrusta el codigo del formulario

en la pagina HTML si funciona.

he buscado en internet y al parecer es porque al llamar el formulario con AJAX

los ID de los campos INPUT del formulario no se han cargado en el DOM de la página HTML

por tal motivo se debe hacer el llamado de las validaciones luego de la sentencia

RESPONSETEXT, lo he hecho de esta forma y me ha funcionado cuando pongo

la validacion del primer campo, pero no cuando pongo la validación

de todos los campos.


-----CODIGO ACTUAL------

PAGINA MAESTRA:


<HTML>
<HEAD>
<script src="LIVEVALIDATION.js" language="JavaScript"></script>
<SCRIPT>

CODIGO AJAX QUE CARGA EL FORMULARIO

</SCRIPT>
</HEAD>
<BODY>

<DIV id="CONTENEDOR">

aca se carga el formulario

</DIV>

</BODY>
</HTML>




FORMULARIO:

<FORM>

<INPUT TYPE="TEXT" ID="F1">

<SCRIPT>
var f1 = new LiveValidation('f1');
f1.add( Validate.Presence );
</SCRIPT>

</FORM>




-----CODIGO SUGERIDO (PERO NO FUNCIONA TOTALMENTE)------


PAGINA MAESTRA:


<HTML>
<HEAD>
<script src="LIVEVALIDATION.js" language="JavaScript"></script>

<SCRIPT>

function CARGAFORMULARIO()
{
.
.
.
if(conexion1.readyState == 4)
{
......responseText;


var f1 = new LiveValidation('f1');
f1.add( Validate.Presence );



}
else
if (conexion1.readyState==1 || conexion1.readyState==2 || conexion1.readyState==3)
{
...
}
}



</SCRIPT>

<BODY>

<DIV id="CONTENEDOR">

aca se carga el formulario

</DIV>

</BODY>
</HTML>


-----CODIGO QUE SI FUNCIONA------


PAGINA MAESTRA:


<HTML>
<HEAD>
<script src="LIVEVALIDATION.js" language="JavaScript"></script>
</HEAD>
<BODY>

<DIV id="CONTENEDOR">

<FORM>

<INPUT TYPE="TEXT" ID="F1">

<SCRIPT>
var f1 = new LiveValidation('f1');
f1.add( Validate.Presence );
</SCRIPT>

</FORM>

</DIV>

</BODY>
</HTML>



IMPORTAN: la funcion javascript que carga el formulario es llamada por medio de un enlace que envía los datos
que contienen los campos del formulario para que el usuario los modifique y guarde los cambios.

muchas gracias
__________________
http://tecnologiaco.com/