Oi, Ei queria que esta condição testasse if (val) { nm=val.name; if (((val=val.value)!= "") || ((val=val.value)!= "Nome:")){
se o valor co campo é nulo "" ou se tem "Nome:" escrito, pois no form tenho isso desse modo:
<input type="text" name="Nome" value="Nome:" onfocus="this.value=''" />
mas alguma coisa não está correndo bem, pois está ignorando a condição.
Tenho a minha função de validação do form assim:
function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
if (val) { nm=val.name; if (((val=val.value)!= "") || ((val=val.value)!= "Nome:")){
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='• '+nm+': Tem que conter um endereço de e-mail válido.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='• '+nm+': O número não é valido.\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+' Tem que ser um número entre '+min+' e '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '• '+nm+': É necessário.\n'; }
}
if (errors) alert('Os seguintes campos têm erros:\n'+errors);
document.MM_returnValue = (errors == '');
}
E o Form assim:
<form action="/cgi-bin/forms.pl" method="post" enctype="multipart/form-data" name="form" id="form" onSubmit="MM_validateForm('Nome','','R','Email','','RisEmail','Mensagem','','R');return document.MM_returnValue">
<div>
<div class="line"><input type="text" name="Nome" value="Nome:" onfocus="this.value=''" />
</div>
<div class="line"><input type="text" name="Email" value="E-mail:" onfocus="this.value=''" />
</div>
<textarea name="Mensagem" cols="30" rows="5" onFocus="this.value=''">Mensagem:</textarea>
<br />
<INPUT name="Submit" type="submit" class="link_4" value="Enviar">
</div>
</form> Agradeço ajuda!