El codigo en javascript es:
Código:
y el en el body:<script language="JavaScript" type="text/JavaScript"> <!-- function MM_preloadImages() { //v3.0 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array(); var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++) if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}} } function MM_findObj(n, d) { //v4.01 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 MM_jumpMenu(targ,selObj,restore){ //v3.0 eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'"); if (restore) selObj.selectedIndex=0; } function YY_checkform() { //v4.69 //copyright (c)1998,2002 Yaromat.com var a=YY_checkform.arguments,oo=true,v='',s='',err=false,r,o,at,o1,t,i,j,ma,rx,cd,cm,cy,dte,at; for (i=1; i<a.length;i=i+4){ if (a[i+1].charAt(0)=='#'){r=true; a[i+1]=a[i+1].substring(1);}else{r=false} o=MM_findObj(a[i].replace(/\[\d+\]/ig,"")); o1=MM_findObj(a[i+1].replace(/\[\d+\]/ig,"")); v=o.value;t=a[i+2]; if (o.type=='text'||o.type=='password'||o.type=='hidden'){ if (r&&v.length==0){err=true} if (v.length>0) if (t==1){ //fromto ma=a[i+1].split('_');if(isNaN(v)||v<ma[0]/1||v > ma[1]/1){err=true} } else if (t==2){ rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");if(!rx.test(v))err=true; } else if (t==3){ // date ma=a[i+1].split("#");at=v.match(ma[0]); if(at){ cd=(at[ma[1]])?at[ma[1]]:1;cm=at[ma[2]]-1;cy=at[ma[3]]; dte=new Date(cy,cm,cd); if(dte.getFullYear()!=cy||dte.getDate()!=cd||dte.getMonth()!=cm){err=true}; }else{err=true} } else if (t==4){ // time ma=a[i+1].split("#");at=v.match(ma[0]);if(!at){err=true} } else if (t==5){ // check this 2 if(o1.length)o1=o1[a[i+1].replace(/(.*\[)|(\].*)/ig,"")]; if(!o1.checked){err=true} } else if (t==6){ // the same if(v!=MM_findObj(a[i+1]).value){err=true} } } else if (!o.type&&o.length>0&&o[0].type=='radio'){ at = a[i].match(/(.*)\[(\d+)\].*/i); o2=(o.length>1)?o[at[2]]:o; if (t==1&&o2&&o2.checked&&o1&&o1.value.length/1==0){err=true} if (t==2){ oo=false; for(j=0;j<o.length;j++){oo=oo||o[j].checked} if(!oo){s+='* '+a[i+3]+'\n'} } } else if (o.type=='checkbox'){ if((t==1&&o.checked==false)||(t==2&&o.checked&&o1&&o1.value.length/1==0)){err=true} } else if (o.type=='select-one'||o.type=='select-multiple'){ if(t==1&&o.selectedIndex/1==0){err=true} }else if (o.type=='textarea'){ if(v.length<a[i+1]){err=true} } if (err){s+='* '+a[i+3]+'\n'; err=false} } if (s!=''){alert('La información requerida esta incompleta o contiene errores:\t\t\t\t\t\n\n'+s)} document.MM_returnValue = (s==''); } //--> </script>
Código:
como ven el formulario funciona bien y siempre alerta en caso que este algo mal, el rpoblema es que siempre me alerte por mi RUT que es de tipo 99.999.999-9, si esta de forma correcta igual me alerta como si no estubiera correcto, que es lo que tengo que agregar <form action="mail_contacto.asp" method="post" name="form1" onSubmit="YY_checkform('form1','nombre','#q','0','Nombre es Requerido','rut','#b','2','Ingrese un RUT válido','mail','#S','2','E-mail requiere un correo electrónico válido ','fono','#q','0','Teléfono es Requerido');return document.MM_returnValue">