Jump to content
RicardoCostaTW

Validar Form Jquery + Submit

Recommended Posts

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

Edited by brunoais
geshi

Share this post


Link to post
Share on other sites
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

  • Vote 1

"[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%.

Share this post


Link to post
Share on other sites
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>

Edited by RicardoCostaTW

Share this post


Link to post
Share on other sites
brunoais

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

  • Vote 1

"[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%.

Share this post


Link to post
Share on other sites
RicardoCostaTW

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

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

Edited by RicardoCostaTW

Share this post


Link to post
Share on other sites
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%.

Share this post


Link to post
Share on other sites
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%.

Share this post


Link to post
Share on other sites
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{

				}

			});

Edited by RicardoCostaTW

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.