Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/01/2007, 13:02
splig
 
Fecha de Ingreso: enero-2002
Mensajes: 265
Antigüedad: 22 años, 3 meses
Puntos: 0
Modificar Validar formulario de DreamWeaver

Buenas. Estoy usando el validar formulario del Dreamweaver que, para campos de texto, no va del todo mal.
Tengo un problema, he intentado modificar el script para solucionarlo pero no he logrado lo que queria. Aquí os explico:

el script es:
Cita:
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_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_valida teForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
if (val) { nm=val.id; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' ha de ser una direcció de e-mail vàlida.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' només pot contenir xifres. No lletres.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' ha de contenir un nombre entre '+min+' i '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' no pot estar en blanc.\n'; }
} if (errors) alert('S\'han registrat els següents errors:\n'+errors);
document.MM_returnValue = (errors == '');
}
Y mi boton de envio es de tal forma:
Cita:
<div id="Layer">
<input name="novanoticia" type="submit" id="novanoticia" value="Publicar"
onClick="MM_validateForm('titol','','R','noticia', '','R');return document.MM_returnValue;document.getElementById('L ayer').innerHTML = '<p>Por favor, espera mientras subimos las imagenes...</p>';">
<input type="reset" name="Submit2" value="Borrar todo">
</div>
Bien, todo funciona mientras haya "errores"; mientras haya campos por llenar. Cuando el form está completo no me da ningun error pero no llega a la tercera instruccio del onClick. Poniendola delante si me funciona, pero no me sirve delante ya que si hay errores de form se quedan sin boton de envio para despues... O sea que supongo que donde se "queda atascado" es en el document.MM_returnValue.

Como puedo solucionar eso? Como puedo hacerlo para que esa funcion para validar cmapos me deje añadir más funciones detrás y SOLO se ejecuten en caso de que el formulario esté completo???

Muchas gracias