Pessoal, no evento onSubmit de um formulário HTML, chamo uma função Javascript responsável por verificar se os campos estão preenchidos corretamente.
Caso não estiverem, ele mostra um alerta na tela e a minha intenção é cancelar o envio do form.
Porém, não estou conseguindo cancelar esse evento. Andei procurando um pouco e vi algo como event.returnValue = false, porém sem sucesso.
Saberiam me dizer como posso fazer para cacnelar o submit de um formulário?
Pois tentei dessa forma e o formulário continua a ser submetido.
Veja meu código:
<script type="text/javascript" language="Javascript">
function valForm(){
erro = "";
nErros = 0;
if (!verificaRadios()){
erro += "Selecione um sentido para a transferência.";
nErros++;
}
if (document.frm.cmbTabelas.value == 0){
erro += "Selecione uma tabela para a tranferência.";
nErros++;
}
if (nErros>0){
window.alert(erro);
e.preventDefault();
}
}
</script>
O que está ocorrendo: Ele exibe os alertas de erro do js, porém o formulário é enviado da mesma forma. AO invés de e.preventDefault tentei também com event.preventDefault mas também não tive sucesso…
Ali no validarCampos no caso seria o valForm, correto?
Eu tentei com o return false ao final, porém o formulário ainda é submetido.
Eu faço os testes no js e também no servidor. Porém, estou tentando não enviar para o servidor em caso de erro para poupar processamento no servidor.
vc tem q colocar return false quando campo o não for validado.
[code]function valForm(){
erro = "";
nErros = 0;
if (!verificaRadios()){
erro += "Selecione um sentido para a transferência.";
nErros++;
}
if (document.frm.cmbTabelas.value == 0){
erro += "Selecione uma tabela para a tranferência.";
nErros++;
}
if (nErros>0){
window.alert(erro);
return false;
}
}
[quote=perdeu]vc tem q colocar return false quando campo o não for validado.
[code]function valForm(){
erro = "";
nErros = 0;
if (!verificaRadios()){
erro += "Selecione um sentido para a transferência.";
nErros++;
}
if (document.frm.cmbTabelas.value == 0){
erro += "Selecione uma tabela para a tranferência.";
nErros++;
}
if (nErros>0){
window.alert(erro);
return false;
}
}
[/code][/quote]
Fiz isso, mas ainda não consegui. A função js ficou assim:
<script type="text/javascript" language="Javascript">
function valForm(){
erro = "";
nErros = 0;
if (!verifica()){
erro += "Selecione um sentido para a transferência.";
nErros++;
}
if (document.frm.cmbTabelas.value == 0){
if (erro == ""){
erro += "\n";
}
erro += "Selecione uma tabela para a tranferência.";
nErros++;
}
if (nErros>0){
window.alert(erro);
return false;
}
}
</script>
cara, testei esse teu código aqui e não funcionou como esperado, rsrs.
Nesse caso ele não está enviando de nenhuma forma.
Por exemplo, tenta preencher todos os campos com alguma informação e veja se o formulário é enviado, porque aqui ele não enivou.