Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Validar Un Form Con Ajax

Estas en el tema de Validar Un Form Con Ajax en el foro de Frameworks JS en Foros del Web. Hola amigos, tengo una duda, hice una pagina web con ajax, pero esta molestando la validacion de los campos y la compatibilidad entre los navegadores; ...
  #1 (permalink)  
Antiguo 03/05/2007, 17:01
 
Fecha de Ingreso: mayo-2007
Ubicación: ibague - tolima
Mensajes: 8
Antigüedad: 17 años, 7 meses
Puntos: 0
Validar Un Form Con Ajax

Hola amigos, tengo una duda, hice una pagina web con ajax, pero esta molestando la validacion de los campos y la compatibilidad entre los navegadores; este es el codigo :

AQUI LES PRESENTO EL CODIGO DEL FORM :


<center>
<FORM NAME="miFormu" ACTION=" " onSubmit="enviar('insertar_comentario.php','mensaj e','POST'); return false; " >

Nick : <INPUT TYPE="text" name="nick1" SIZE=20 MAXLENGTH=20 >
<BR>
<TEXTAREA COLS=60 ROWS=10 name="comentario">
</TEXTAREA>
<BR>
<INPUT TYPE="submit" VALUE="Enviar Comentario" >
<INPUT TYPE="reset" VALUE="Borrar Comentario" >

</FORM>
</center>



Y AQUI ESTA EL SCRIPT AJAX :



function creaAjax(){
var objetoAjax=false;
try {
/*Para navegadores distintos a internet explorer*/
objetoAjax = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
/*Para explorer*/
objetoAjax = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (E) {
objetoAjax = false;
}
}

if (!objetoAjax && typeof XMLHttpRequest!='undefined') {
objetoAjax = new XMLHttpRequest();
}
return objetoAjax;
}


//********************************************* FUNCION QUE ENVIA LOS DATOS ********************************************

function FAjax (url,capa,metodo){

var ajax=creaAjax();
var capaContenedora = document.getElementById(capa);

if(metodo.toUpperCase()=='GET'){

ajax.open ('GET', url,true);

ajax.onreadystatechange = function() {

if (ajax.readyState==1) {
capaContenedora.innerHTML="Cargando.......";
capaContenedora.innerHTML= '<br><br><br><br> <center> <img src="images/loader.gif"> </center>';

}else
if (ajax.readyState==4){

if(ajax.status==200){
document.getElementById(capa).innerHTML=ajax.respo nseText;

}else
if(ajax.status==404){
capaContenedora.innerHTML = "La direccion no existe";

}else {
capaContenedora.innerHTML = "Error: ".ajax.status;
}
}
}

ajax.send(null);
return;

}

}



//********************************************* FUNCION QUE ENVIA LOS DATOS ********************************************

function enviar(url,capa,metodo){

var ajax=creaAjax();
var capaContenedora = document.getElementById(capa);
var t1, t2;
t1 = document.getElementById('nick1').value;
t2 = document.getElementById('comentario').value;


if (t1.length <=0) {
alert('DEBE COLOCAR UN NOMBRE O NICK')
document.getElementById('nick1').focus();
return;

}else
if (t2.length <=0) {
alert('DEBE COLOCAR UN COMENTARIO')
document.getElementById('comentario').focus();
return;

}else{

if(metodo.toUpperCase()=='POST'){

ajax.open ('POST', url,true);
ajax.onreadystatechange = function() {

if (ajax.readyState==1) {
capaContenedora.innerHTML="Cargando.......";
capaContenedora.innerHTML= '<img src="../images/loader.gif">';

}else
if (ajax.readyState==4){

if(ajax.status==200){
document.getElementById(capa).innerHTML=ajax.respo nseText;

}else
if(ajax.status==404){
capaContenedora.innerHTML = "La direccion no existe";

}else {
capaContenedora.innerHTML = "Error: ".ajax.status;
}
}
}

ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
ajax.send("nick1="+t1+"&comentario="+t2);
return;

}
}

}


me gustaria saber si es posible y me dijeran que esta mal o si conocen un mejor metodo, mas standar, seguro y portable de hacer envios y recepciones con ajax.

muchas gracias
  #2 (permalink)  
Antiguo 03/05/2007, 17:28
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Re: Validar Un Form Con Ajax

Hola:

La verdad es que las validaciones se deben hacer en el navegador con javascript, o en el servidor con el lenguaje que sea. Y ajax es algo de javascript y algo del servidor.

En el navegador, la forma de validar es del tipo: <form onsubmit="return validar(this)"...>

En ese "validar()" tendrías que implementar el código javascript de la parte ajax... devolviendo true/false

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 04/05/2007, 07:54
 
Fecha de Ingreso: mayo-2007
Ubicación: ibague - tolima
Mensajes: 8
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Validar Un Form Con Ajax

MUCHAS GRACIAS POR LA RESPUESTA, PERO YA ENCONTRE LA SOLUCION A MI PROBLEMA, RESULTA QUE EN EL FORM TENGO

INPUT TYPE="text" name="nick1" SIZE=20 MAXLENGTH=20 >

<TEXTAREA COLS=60 ROWS=10 name="comentario">

RESULTA QUE DEBO ES COLOCAR :

INPUT TYPE="text" id="nick1" SIZE=20 MAXLENGTH=20 >

<TEXTAREA COLS=60 ROWS=10 id="comentario">

Y AHIO SI FUNCIONA; MUCHAS GRACIAS A TODOS LOS QUE ME COLABORARON
  #4 (permalink)  
Antiguo 04/05/2007, 09:09
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Re: Validar Un Form Con Ajax



Verás, la pregunta es bastante rara...

Con formularios solo valen los atributos name, porque es lo que se evalúa en el servidor... y en el navegador no se debe referenciar un campo del formulario por el id sino por el name... decididamente tu error no era poner id en vez de name en las etiquetas, sino usar en el script getElementById (aunque podrías replicarlo)... lo mejor, en mi opinión hubiera sido referenciar el elemento con: document.forms[ekForm][el_name_del_campo]...

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 23:59.