Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

QuinhOboOZ

como Chamar mais de uma função no onsubmit

Recommended Posts

<form action="fotoAdmin.php" method="post" enctype="multipart/form-data" name="form" id="form" onsubmit="return checaCampoImagem();">

Ali está chamando uma função checaCampoImagem no onsubmit

 

tem como chamar mais uma função ali? por exemplo: checaCampoTitulo()

 

Alguem?

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

<form action="fotoAdmin.php" method="post" enctype="multipart/form-data" name="form" id="form" onsubmit="return checaCampoImagem(); checaCampoTitulo();">

Separe com ; as funções subsequentes. Cuidado com a ordem as funções, pois uma pode interferir em outra, dependendo da ordem de execução.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<form action="fotoAdmin.php" method="post" enctype="multipart/form-data" name="form" id="form" onsubmit="return checaCampoImagem(); checaCampoTitulo();">

Separe com ; as funções subsequentes. Cuidado com a ordem as funções, pois uma pode interferir em outra, dependendo da ordem de execução.

 

Coloquei como você falou mais nao está chamando a segunda função.

testei colocando somente um alert nela.

 

oque poderiamos fazer?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não vou complicar, por isso:

 

A solução para o seu problema é apenas você inverter a ordem das chamdas:

<form action="fotoAdmin.php" method="post" enctype="multipart/form-data" name="form" id="form" onsubmit="checaCampoTitulo();return checaCampoImagem(); ">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não vou complicar, por isso:

 

A solução para o seu problema é apenas você inverter a ordem das chamdas:

<form action="fotoAdmin.php" method="post" enctype="multipart/form-data" name="form" id="form" onsubmit="checaCampoTitulo();return checaCampoImagem(); ">

 

Klaygomes

 

fiz oque você sugerio, mais não funcionou, acabou só chamando a primeira função.

tem algum outro geito?

 

desde já obrigado pela atenção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim há pelo menos mais duas formas.

 

Vamos lá, primeiro teremos que alterar o seu código um pouco...

 

1 - Na tag form, retire o evento onsubmit.

2 - Insira este script entre as tag script da sua página.

 

window.onload = function()
{
	document.getElementById('form').onsubmit = function() { 
		checaCampoTitulo();//Essa função retorna algum valor?
		return checaCampoImagem(); 
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

assim

 

<script Language="JavaScript">

function Enviar(){

//dados pessoais

cnome=document.orcmail.cnome.value

cempresa=document.orcmail.cempresa.value

ddd=document.orcmail.ddd.value

fone=document.orcmail.fone.value

email=document.orcmail.email.value

cidade=document.orcmail.cidade.value

est3=document.orcmail.est3.value

cep=document.orcmail.cep.value

veiculo=document.orcmail.veiculo.value

sveiculo=document.orcmail.sveiculo.value

lveiculo=document.orcmail.lveiculo.value

est=document.orcmail.est.value

destino=document.orcmail.destino.value

est2=document.orcmail.est2.value

obs=document.orcmail.obs.value

</script>

veja q tem a função la em cima, ai você só coloca ela no on submit

ela vai checar todos estas funçoes q então atribuidas a cada campo do formulario

Compartilhar este post


Link para o post
Compartilhar em outros sites

As duas funções retornam false ou true.

elas só verificam se os campos estão vazios e mostrando um alert.

 

Elas verificam os campos ao clicar num botao de adicionar entende?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi sim.

Não seria melhor então, você fazer estas duas valildações em uma função apenas?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem como eu passa o nome do campo no alert?

 

function checaCampoTexto(campo) {
	if ((campo.value) == "") {
		alert("Preencha o campo !");
		campo.focus();
		return false;
	}
	return true;
}


function checaCamposExecucao(form) {
	if(!checaCampoTexto(form.titulo)) {
		return false;
	}
		if(!checaCampoTexto(form.descricao)) {
		return false;
	}
	//
}

A primeira função faz a verificação do campo passado.

só que falta informar no alert quais ou qual campo tem de ser informado

deu pra intender?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz assim, olha:

 

function checaCampoTexto(campo, nomeCampo) {
	if ((campo.value) == "") {
		alert("Preencha o campo "+ nomeCampo + "!");
		campo.focus();
		return false;
	}
	return true;
}


function checaCamposExecucao(form) {
	if(!checaCampoTexto(form.titulo,'Titulo')) {
		return false;
	}
		if(!checaCampoTexto(form.descricao,'Descrição')) {
		return false;
	}
   return checaCampoImagem();
}

 

No form:

<form action="fotoAdmin.php" method="post" enctype="multipart/form-data" name="form" id="form" onsubmit="return checaCamposExecucao(this.form);">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei no form o this.form

 

e na função:

 

function checaCampoTexto(campo, nomeCampo) {
	if ((campo.value) == "") {
		alert("Preencha o campo "+ nomeCampo +"!");
		campo.focus();
		return false;
	}
	return true;
}
/*
//Verifica formulario de Execução
*/
function checaCamposExecucao(form) {
	if(!checaCampoTexto(form.titulo,'Titulo')) {
		return false;
	}
	if(!checaCampoTexto(form.descricao,'Descrição')) {
		return false;
	}
	//
}

não está entrando na função checaCampoTexto.

=/

Compartilhar este post


Link para o post
Compartilhar em outros sites

QuinhOboOZ, me desculpa, ao invés de this.form e deixe apenas o this.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.