Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
estou dificuldade em validar um formulário, mas da forma que estou tentando não sei se é possível, alguém pode me dar uma força?
Tenho um formulário com dois botões submit.
E na tag form estou colocando o onsubmit = checa_formulario()
Porém, um dos botões deve realizar o submit sem entrar nesta funcão do onsubmit, mas o outro botão deve executar essa função.
Tentei chamar essa função no onclick do botão que quero que execute a função, mas aí ele executava a função, mas independente do resultado, ele realizava o submit.
Alguém poderia me ajudar?
Desde já agradeço!
##### EDIT #####
Devo utilizar javascript puro
### Código
HTML
<!-- Botões -->
<button type="submit" name="submit" value="1">
<button type="submit" name="submit" value="2">
<!-- Tag form -->
<form method="POST" action="arquivo.php" onsubmit="return checa_formulario()">
JavaScript
if (document.getElementById('descri_icon').value.length < 10) {
alert("Erro");
return (false);
}Editei a pergunta pra explicar melhor
>
6 minutos atrás, Gabrielvt14 disse:
Editei a pergunta pra explicar melhor
Você não pode colocar um form diferente para cada botão?
Não porque só há um form.
É um formulário bem extenso, então o botão com value = 1 conclui o formulário.
E o botão com value = 2 salva tudo que ja foi preenchido mas nao conclui o formulario. Então o botão com value = 2 não precisa de verificação do formulario
Mas preciso que os dois realizem o submit, porque ambos precisam do backend
<button id="teste" type="submit" name="submit" value="2">
Javascript---------------------------------------------------------------------------------------------------
window.onload = function () {
var teste = document.getElementById("teste");
teste.onsubmit = function () { return false; }
}
Tentou algo parecido com isso?Isso jogaria onde? Dentro da função checa_formulario()?
Perdão pela ignorancia... sou bem fraco no front :/
>
6 minutos atrás, Gabrielvt14 disse:
Isso jogaria onde? Dentro da função checa_formulario()?
Perdão pela ignirancia... sou bem fraco no front :/
Você pode pegar as informações dentro da função checar_formulario() e colocar aqui:
Javascript---------------------------------------------------------------------------------------------------
window.onload = function () {
var teste = document.getElementById("teste");
teste.onsubmit = function () {** -->aqui<--** return false; }
}
Então quando você clicar no botão com o id="teste", ou outro id que você especificar, ela não vai disparar o submit do formulário.E se os botões, ao invés de serem do tipo submit, fossem do tipo buttom mesmo?
Aí você tiraria o onSubmit do form
E um dos botões um executaria um javascript para dar o submit direto e o outro faria a validação antes de dar o submit
Algo +/- assim:
<!-- Botões -->
<button type="button" name="btnSemValidacao" value="1" onclick="javascript:document.getElementById('form').submit()">
<button type="button" name="btnComValidacao" value="2" onclick="javascript: if (checa_formulario()) { document.getElementById('form').submit() }">
<!-- Tag form -->
<form id="form" method="POST" action="arquivo.php">
Obrigado aos dois pela ajuda!
Solucionei da seguinte forma:
<!-- Botões -->
<button type="button" name="btnComValidacao" value="1" onclick="checa_formulario()">
<button type="submit" name="btnSemValidacao" value="2">
E a função *checa_formulario()*
function checa_formulario(){
if (document.getElementById('descri_icon').value.length < 10){
alert("erro");
return (false);
} else {
document.getElementById('form').submit();
}
}
E tirei o *onsubmit* da tag *<form>*.
Assim, quando clicado no botao com value = 2, que ja é do tipo submit, ele da o submit.
E quando clicado no botao com value = 1, que é do tipo button, ele primeiro entra na função e verifica a textarea, se o if der falso, ele realiza o submit
Boa tarde,
Coloca o código aqui.