Boas,
Tenho a validação de campos de vários formulários num só ficheiro js.
Acontece que, quando um formulário não tem um dos campos para validação nesse ficheiro, o confirm() não funciona.
No exemplo abaixo, como o formulário não tem o intup name="pass", o confirm já não funciona.
Como posso ultrapassar isto?
function valida(form) {
if (document.form.nome.value=="") {
alert("Preencha o nome corretamente.");
form.nome.focus();
return false;
}
if (form.morada.value=="" || form.morada.value.length < 2) {
alert("Preencha o endereço corretamente.");
form.morada.focus();
return false;
}
if (form.telefone.value=="" || form.telefone.value.length < 9 || isNaN(form.telefone.value)) {
alert("Preencha o telefone corretamente.");
form.telefone.focus();
return false;
}
var filtro_email = /^.+@.+\..{2,3}$/
if (!filtro_email.test(form.email.value) || form.email.value=="") {
alert("Preencha o e-mail corretamente.");
form.email.focus();
return false;
}
/*if (form.email.value=="" || form.email.value.indexOf('@')==-1 || form.email.value.indexOf('.')==-1 ) {
alert("Preencha o e-mail corretamente.");
form.email.focus();
return false;
}*/
/* data com o formato dd/mm/aaaa, 10 caracteres*/
if (form.datan.value=="" || form.datan.value.length != 10) {
alert("Preencha a data de nascimento corretamente.");
form.datan.focus();
return false;
}
/*pass com min de 6 caracteres*/
if (form.pass.value=="" || form.pass.value.length < 6) {
alert("Preencha a senha corretamente.");
form.pass.focus();
return false;
}
if(confirm("Tudo OK. Confire os dados.")){
return true;
}
else { return false;
}
}
<form name="form" action="enviou.php" method="post" onsubmit="return valida(this)">
Nome:<input type="text" name="nome"><br>
Morada:<br><textarea rows="3" cols="30" name="morada"></textarea><br>
Telefone:<input type="text" name="telefone"><br>
Email:<input type="text" name="email"><br>
Data de Nascimento:<input type="text" name="datan"><br>
Observações:<br><textarea rows="5" cols="30" name="obs"></textarea><br>
<input type="hidden" name="enviar" value="S"><br>
<input type="submit" value="Inserir Prestador" name="inserir"></p>
</form>
Tenho a validação de campos de vários formulários num só ficheiro js.
Acontece que, quando um formulário não tem um dos campos para validação nesse ficheiro, o confirm() não funciona.
No exemplo abaixo, como o formulário não tem o intup name="pass", o confirm já não funciona.
Como posso ultrapassar isto?
function valida(form) {
if (document.form.nome.value=="") {
alert("Preencha o nome corretamente.");
form.nome.focus();
return false;
}
if (form.morada.value=="" || form.morada.value.length < 2) {
alert("Preencha o endereço corretamente.");
form.morada.focus();
return false;
}
if (form.telefone.value=="" || form.telefone.value.length < 9 || isNaN(form.telefone.value)) {
alert("Preencha o telefone corretamente.");
form.telefone.focus();
return false;
}
var filtro_email = /^.+@.+\..{2,3}$/
if (!filtro_email.test(form.email.value) || form.email.value=="") {
alert("Preencha o e-mail corretamente.");
form.email.focus();
return false;
}
/*if (form.email.value=="" || form.email.value.indexOf('@')==-1 || form.email.value.indexOf('.')==-1 ) {
alert("Preencha o e-mail corretamente.");
form.email.focus();
return false;
}*/
/* data com o formato dd/mm/aaaa, 10 caracteres*/
if (form.datan.value=="" || form.datan.value.length != 10) {
alert("Preencha a data de nascimento corretamente.");
form.datan.focus();
return false;
}
/*pass com min de 6 caracteres*/
if (form.pass.value=="" || form.pass.value.length < 6) {
alert("Preencha a senha corretamente.");
form.pass.focus();
return false;
}
if(confirm("Tudo OK. Confire os dados.")){
return true;
}
else { return false;
}
}
<form name="form" action="enviou.php" method="post" onsubmit="return valida(this)">
Nome:<input type="text" name="nome"><br>
Morada:<br><textarea rows="3" cols="30" name="morada"></textarea><br>
Telefone:<input type="text" name="telefone"><br>
Email:<input type="text" name="email"><br>
Data de Nascimento:<input type="text" name="datan"><br>
Observações:<br><textarea rows="5" cols="30" name="obs"></textarea><br>
<input type="hidden" name="enviar" value="S"><br>
<input type="submit" value="Inserir Prestador" name="inserir"></p>
</form>