Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

RicardoCostaTW

Validar Form Jquery + Submit

Mensagens Recomendadas

RicardoCostaTW    0
RicardoCostaTW

Bom dia Pessoal,

Estava a fazer a validação deste formulário, quando os campos estão em branco ele adiciona o css, mas não evita o submit. Dei umas pesquisas na net e encontrei isto:

jQuery(document).ready(function(event) {
               jQuery('form[name=form_contatos]').submit(function(event) {
                   event.preventDefault();
                   //add stuff here
               });
           });

realmente ele evita o submit mas depois não deixa mais submeter, como posso fazer isto?

Abraço

Editado por brunoais
geshi

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
brunoais    67
brunoais

Sabes validar campos de um formulário?

Só podes executar o preventDefault() na situação em que queres que o formulário não seja submetido, e não sempre.

Tu estás a executá-lo sempre que o utilizador está a tentar submeter o formulário


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
RicardoCostaTW    0
RicardoCostaTW

eu criei uma variável count e inicializei a 0. E por cada campo vazio após o clique no botão de submeter, ele incrementa +1. Se count>0 ele executa o prevent. e depois igual o count a 0 de novo.

<script>
jQuery('#enviar').click(function() {
 var departamento = jQuery('#departamento option:selected').val();
 var nome = jQuery('#nome').val();
 var localidade = jQuery('#localidade').val();
 var email = jQuery('#email').val();
 var telefone = jQuery('#telefone').val();
 var contactado = jQuery("input[name='contactado']:checked").val();
 var count = 0;
 if (departamento == '0') {
	 jQuery('#departamento').css('border-width', '1');
	 jQuery('#departamento').css('border', '1px solid red');
	 count++;
 }
 if (nome == "") {
	 jQuery('#nome').css('border-width', '1');
	 jQuery('#nome').css('border', '1px solid red');
	 count++;
 }
 if (localidade == "") {
	 jQuery('#localidade').css('border-width', '1');
	 jQuery('#localidade').css('border', '1px solid red');
	 count++;
 }
 if (email == "") {
	 jQuery('#email').css('border-width', '1');
	 jQuery('#email').css('border', '1px solid red');
	 count++;
 }
 if (telefone == "") {
	 jQuery('#telefone').css('border-width', '1');
	 jQuery('#telefone').css('border', '1px solid red');
	 count++;
 }
 if (count > 0) {
	 jQuery(document).ready(function(event) {
		 jQuery('form[name=form_contatos]').submit(function(event) {
			 event.preventDefault();
			 //add stuff here
		 });
	 });
	 count = 0;
 } else {
	 jQuery('#enviar').click(function() {
		 jQuery('#form_contatos').submit();
	 });
 }
});

</script>

Editado por RicardoCostaTW

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
brunoais    67
brunoais

Sabes para que é que serve o método .ready() do jQuery?


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
RicardoCostaTW    0
RicardoCostaTW

para correr a função quando o documento estiver pronto?

podes dar-me uma dica para uma solução?Abc

Editado por RicardoCostaTW

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
brunoais    67
brunoais

podes dar-me uma dica para uma solução?

Sim.

Não procures por algo no DOM antes de essa coisa existir.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
brunoais    67
brunoais

Obrigado a todos ;)

Problema resolvido?

Se sim, mostra o resultado para outros verem.


"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
RicardoCostaTW    0
RicardoCostaTW

Não andei por cá estes dias. Resolvi assim:

 jQuery('form[name=form_contatos]').submit(function(event) {
				if(count>0){
				event.preventDefault();
				 count = 0;
				}else{

				}

			});

Editado por RicardoCostaTW

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.