Foros del Web » Programando para Internet » Javascript »

Como llamar funciones desde el onsubmit del webform: Ayuda!!!!

Estas en el tema de Como llamar funciones desde el onsubmit del webform: Ayuda!!!! en el foro de Javascript en Foros del Web. Hola, espero que a mi si me puedan ayudar por favor es urgenteee!!! Tengo una funcion que va ha validar el codigo captcha que se ...
  #1 (permalink)  
Antiguo 18/08/2008, 15:09
 
Fecha de Ingreso: agosto-2008
Mensajes: 8
Antigüedad: 15 años, 9 meses
Puntos: 0
Pregunta Como llamar funciones desde el onsubmit del webform: Ayuda!!!!

Hola, espero que a mi si me puedan ayudar por favor es urgenteee!!!

Tengo una funcion que va ha validar el codigo captcha que se tiene que ingresar en mi formulario: YY_checkform() y otra funcion que va ha validar cada caja de texto del formulario en si: validarDato(frmDato)

Al llamarlos desde el onsubmit de esta forma:
<form method="post" name="form1" onSubmit="salida = return validarDato(this)&&YY_checkform('form1','textfield ','#textfield2','6','Ha ingresado Mal el Código, Intente Nuevamente!!!');return document.MM_returnValue" action="pass.asp"> NO ME FUNCIONA!!, ambos dejan de funcionar o sino solo uno de ellos valida, por lo general si valida la funcion para el codigo captcha: YY_checkform()

Espero me puedan ayudar ya que ya no se que hacer..he intentado con ";", con "&&", cambiandole el orden pero nada.

Aqui les copio las dos funciones respectivamente:

<script language = "JavaScript">

<!--
function MM_findObj(n, d) {
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function YY_checkform() {
var args = YY_checkform.arguments; var myDot=true; var myV=''; var myErr='';var addErr=false;var myReq;
for (var i=1; i<args.length;i=i+4){
if (args[i+1].charAt(0)=='#'){myReq=true; args[i+1]=args[i+1].substring(1);}else{myReq=false}
var myObj = MM_findObj(args[i].replace(/\[\d+\]/ig,""));
myV=myObj.value;
if (myObj.type=='text'||myObj.type=='password'||myObj .type=='hidden'){
if (myReq&&myObj.value.length==0){addErr=true}
if ((myV.length>0)&&(args[i+2]==1)){ //fromto
var myMa=args[i+1].split('_');if(isNaN(myV)||myV<myMa[0]/1||myV > myMa[1]/1){addErr=true}
} else if ((myV.length>0)&&(args[i+2]==2)){
var rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");if(!rx.test(myV))addErr=true;
} else if ((myV.length>0)&&(args[i+2]==3)){ // date
var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);
if(myAt){
var myD=(myAt[myMa[1]])?myAt[myMa[1]]:1; var myM=myAt[myMa[2]]-1; var myY=myAt[myMa[3]];
var myDate=new Date(myY,myM,myD);
if(myDate.getFullYear()!=myY||myDate.getDate()!=my D||myDate.getMonth()!=myM){addErr=true};
}else{addErr=true}
} else if ((myV.length>0)&&(args[i+2]==4)){ // time
var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);if(!myAt){addErr=true}
} else if (myV.length>0&&args[i+2]==5){ // check this 2
var myObj1 = MM_findObj(args[i+1].replace(/\[\d+\]/ig,""));
if(myObj1.length)myObj1=myObj1[args[i+1].replace(/(.*\[)|(\].*)/ig,"")];
if(!myObj1.checked){addErr=true}
} else if (myV.length>0&&args[i+2]==6){ // the same
var myObj1 = MM_findObj(args[i+1]);
if(myV!=myObj1.value){addErr=true}
}
} else
if (!myObj.type&&myObj.length>0&&myObj[0].type=='radio'){
var myTest = args[i].match(/(.*)\[(\d+)\].*/i);
var myObj1=(myObj.length>1)?myObj[myTest[2]]:myObj;
if (args[i+2]==1&&myObj1&&myObj1.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
if (args[i+2]==2){
var myDot=false;
for(var j=0;j<myObj.length;j++){myDot=myDot||myObj[j].checked}
if(!myDot){myErr+='* ' +args[i+3]+'\n'}
}
} else if (myObj.type=='checkbox'){
if(args[i+2]==1&&myObj.checked==false){addErr=true}
if(args[i+2]==2&&myObj.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
} else if (myObj.type=='select-one'||myObj.type=='select-multiple'){
if(args[i+2]==1&&myObj.selectedIndex/1==0){addErr=true}
}else if (myObj.type=='textarea'){
if(myV.length<args[i+1]){addErr=true}
}
if (addErr){myErr+='* '+args[i+3]+'\n'; addErr=false}
}
if (myErr!=''){alert('La Información Requerida esta Imcompleta o Contiene Errores:\t\t\t\t\t\n\n'+myErr)}
document.MM_returnValue = (myErr=='');
}

function activar(objTexto){
if (objTexto.disabled) {
objTexto.disabled = false;
objTexto.focus();
}else{
objTexto.value="";
objTexto.disabled = true;
}
}

function trim(cadena) {
return ((cadena.replace(/^\s+/g,'')).replace(/\s+$/g,''));
}
function validarDato(frmDato) {
vacio="", texto="Por favor Ingrese ", combo="Por favor Seleccione ", dato="";

dato=trim(frmDato.name.value);
if (dato.length==0) {
alert(texto+"Su Nombre.");
frmDato.name.focus()
return false;
}
dato=trim(frmDato.emailname.value);
if (dato.length==0) {
alert(texto+"Su Email.");
frmDato.emailname.focus()
return false;
}
dato=trim(frmDato.friend.value);
if (dato.length==0) {
alert(texto+"El Nombre de Su Amigo(a).");
frmDato.friend.focus()
return false;
}

dato=trim(frmDato.emailfriend.value);
if (dato.length==0) {
alert(texto+"El Email de Su Amigo(a).");
frmDato.emailfriend.focus()
return false;
}
dato=trim(frmDato.comments.value);
if (dato.length==0) {
alert(texto+"Su Comentario.");
frmDato.comments.focus()
return false;
}
return true;
}
//-->
</script>
  #2 (permalink)  
Antiguo 18/08/2008, 16:06
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 9 meses
Puntos: 23
Respuesta: Como llamar funciones desde el onsubmit del webform: Ayuda!!!!

sobreentiendo que ya las provaste por separado y cada una funciona sin errores.

Lo que recomiedno es que solo llames a una funcion en onsubmit

<script>
function valida(obj,forma,campo1,campo2,entero,cadena)
{
regresa1=validarDato(obj);
regresa2=YY_checkform(forma,campo1,campo2,entero,c adena);
if(regresa1 && regresa2);
return true;
else
return false;
}
</script>

<form method="post" name="form1" onSubmit="valida(this,'form1','textfield ','#textfield2','6','Ha ingresado Mal el Código, Intente Nuevamente!!!')">
  #3 (permalink)  
Antiguo 19/08/2008, 09:35
 
Fecha de Ingreso: agosto-2008
Mensajes: 8
Antigüedad: 15 años, 9 meses
Puntos: 0
Pregunta Respuesta: Como llamar funciones desde el onsubmit del webform: Ayuda!!!!

Hola, Gracias por responder!!!,

De hecho ya he probado cada funcion por separado y esta comprobado que funcionan ambas por si solas...

Acabo de poner el codigo que me haz proporcionado y he llamado a la funcion valida () tal como me lo indicaste desde el onsubmit pero nada!, al darle click en el boton: Enviar el formulario no valida ninguna de las dos funciones...!, no se que es lo que puede estar pasando!!!...

Ojala me puedas brindar otra opcion!, Te lo agradeceria harto!
Gracias.
  #4 (permalink)  
Antiguo 20/08/2008, 09:24
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
Exclamación Respuesta: Como llamar funciones desde el onsubmit del webform: Ayuda!!!!

En ningún lado del código de YY_checkform() he encontrado un return, tal vez sea ese el error. De hecho, no sé qué exactamente hace la función porque está difícil de leer o al menos no tengo paciencia para ello , ¿qué es lo que pretendes hacer con ella?.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 20/08/2008, 10:05
 
Fecha de Ingreso: agosto-2008
Mensajes: 8
Antigüedad: 15 años, 9 meses
Puntos: 0
Pregunta Respuesta: Como llamar funciones desde el onsubmit del webform: Ayuda!!!!

Hola David:
Esa funcion la necesito para poder validar el codigo de verificacion que he puesto en mi formulario para evitar spam y esos robot's que llenan los formularios para enviar pura basura...

la funcion validadato si es mas simple porque solo la uso para validar que cada campo este lleno a comparacion de la otra funcion que tiene que validar caracter por caracter y si son los correctos a la imagen que mi frm muestra...

Espero me puedas ayudar por favor, es bastante importante que ambas funciones funcionen! valga la redundancia ya que de eso depende la validez del frm. Gracias.
  #6 (permalink)  
Antiguo 20/08/2008, 10:18
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
De acuerdo Respuesta: Como llamar funciones desde el onsubmit del webform: Ayuda!!!!

Prueba poniendo así:
Código PHP:
function valida(form) {
YY_checkform('form1','textfield  ','#textfield2','6','Ha ingresado Mal el Código, Intente Nuevamente!!!');
return (
validarDato(form)&&document.MM_returnValue);

Código PHP:
<form method="post" name="form1" onSubmit="return valida(this)" action="pass.asp"
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 20/08/2008, 11:07
 
Fecha de Ingreso: agosto-2008
Mensajes: 8
Antigüedad: 15 años, 9 meses
Puntos: 0
De acuerdo Respuesta: Como llamar funciones desde el onsubmit del webform: Ayuda!!!!

DAVID!!!
Realmente eres el grande!!!, ahora si funcionan mis dos funciones en mi formulario!!!
Muchas Gracias por tu ayuda! me haz ayudado harto!.

un beso.
Luisa.
  #8 (permalink)  
Antiguo 20/08/2008, 11:10
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 1 mes
Puntos: 839
De acuerdo Respuesta: Como llamar funciones desde el onsubmit del webform: Ayuda!!!!

Me alegra que funciona.

Es un poco extraño el comportamiento de esa función ya que en vez de devolver directamente con return la validación devuelve en una variable.

Cualquier cosa, estamos por acá. Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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 20:56.