Como impedir que um formulário seja enviado usando jquery?
Eu tentei de tudo - veja três opções diferentes que tentei abaixo, mas tudo não vai funcionar:
$(document).ready(function() {
//option A
$("#form").submit(function(e){
e.preventDefault();
});
//option B
$("#form").submit(function(e){
stopEvent(e);
});
//option C
$("#form").submit(function(){
return false;
});
});
O que pode estar errado?
Atualização - aqui está o meu html:
<form id="form" class="form" action="page2.php" method="post">
<!-- tags in the form -->
<p class="class2">
<input type="submit" value="Okay!" />
</p>
</form>
Há algo errado aqui?
return false;
depois que.submit()
funcionou para mim! Eu estava tendo o mesmo problemae.preventDefault();
código não será alcançado / executado.Respostas:
Duas coisas se destacam:
form
. Em vez disso, consulte a tag soltando o #.Também
e.preventDefault
é a sintaxe correta do JQuery, por exemploA opção C também deve funcionar. Não estou familiarizado com a opção B
Um exemplo completo:
fonte
$('#form')
para$('.form')
para atributos de classe.Você provavelmente possui poucos formulários na página e, usando $ ('form'). Submit () adiciona esse evento à primeira ocorrência do formulário em sua página. Use o seletor de classe ou tente o seguinte:
ou melhor:
fonte
Para impedir o padrão / impedir o envio de formulários, use
Para interromper a subida do evento, use
Para impedir o envio de formulários, 'return false' também deve funcionar.
fonte
event.stopPropagation()
eevent.preventDefault()
. Umfalse
valor também pode ser passado para o manipulador como uma abreviação parafunction(){ return false; }
".Eu também tive o mesmo problema. Eu também tentei o que você tentou. Então eu mudo meu método para não usar o jquery, mas usando o atributo "onsubmit" na tag do formulário.
Funciona.
Mas, quando tentei colocar o valor de retorno falso apenas em "thefunction ()", isso não impede o processo de envio, portanto, devo colocar "return false"; no atributo onsubmit. Portanto, concluo que meu aplicativo de formulário não pode obter o valor de retorno da função Javascript. Eu não tenho nenhuma idéia sobre isso.
fonte
false;
ereturn false;
. Você precisaria teronsubmit="return thefunction();"
Eu tive o mesmo problema e resolvi desta maneira (não elegante, mas funciona):
E tem a vantagem, na minha opinião, que você pode reverter a situação a qualquer momento:
fonte
$('#form').removeAttr('onsubmit');
Anexe o evento ao elemento de envio e não ao elemento de formulário. Por exemplo, no seu html, faça assim
fonte
Você pode simplesmente verificar se o formulário é válido se sim, executar a lógica de envio, caso contrário, mostrar erro.
HTML
Javascript
fonte
Quando estou usando
<form>
tag sem o atributoid="form"
e chamo-o pelo nome da tag diretamente no jquery, ele funciona comigo.seu código no arquivo html:
e no script Jquery:
fonte
$('#form')
procura um elemento comid="form"
.$('form')
procura o elemento do formuláriofonte
Você esquece o ID do formulário e funciona
fonte
daqui: https://api.jquery.com/submit-selector/ (página interessante sobre os tipos de envio)
fonte
Isso também parece funcionar e pode ser um pouco mais simples:
fonte
Usando o jQuery, você pode fazer o seguinte:
1- Use o evento de envio do formulário nativo com um botão Enviar, enquanto impede o disparo do evento e, em seguida,
2- Verifique o formulário Propriedade válida Isso pode ser implementado da seguinte forma:
1- HTML:
2- Javascript
fonte