Em vez de um botão de envio, tenho um link:
<form>
<a href="#"> submit </a>
</form>
Posso fazê-lo enviar o formulário quando ele é clicado?
javascript
html
forms
hyperlink
arenoso
fonte
fonte
target="_blank"
não parece funcionar.<a role="button" aria-label="submit form" href="javascript:void(0)" onclick="document.querySelector('form').submit()">Submit</a>
Respostas:
A melhor maneira
A melhor maneira é inserir uma tag de entrada apropriada:
A melhor maneira JS
Coloque o último código JavaScript por um
DOMContentLoaded
evento (escolha apenasload
para compatibilidade com versões anteriores ) se você ainda não o fez:A maneira fácil, não recomendável (a resposta anterior)
Adicione um
onclick
atributo ao link e umid
ao formulário:Todas as formas
Qualquer que seja a maneira que você escolher, você
formObject.submit()
eventualmente ligará (ondeformObject
está o objeto DOM da<form>
tag).Você também precisa vincular esse manipulador de eventos, que chama
formObject.submit()
, para que seja chamado quando o usuário clicar em um link ou botão específico. Existem duas maneiras:Recomendado: vincule um ouvinte de evento ao objeto DOM.
Não recomendado: insira JavaScript embutido. Existem várias razões pelas quais essa técnica não é recomendável. Um argumento importante é que você mistura marcação (HTML) com scripts (JS). O código torna-se desorganizado e um pouco insustentável.
Agora, chegamos ao ponto em que você precisa decidir o elemento da interface do usuário que aciona a chamada submit ().
Um botão
Um link
Aplique as técnicas mencionadas acima para adicionar um ouvinte de evento.
fonte
name="submit"
, osubmit()
método do seu formulário não estará acessível.<input type="submit">
tem mais significado semântico do que, digamos<a href="#" onclick="...">
,. Isso é especialmente importante em relação aos leitores de tela. Se você deve usar o último, sugiro usar o ARIA .Se você usa jQuery e precisaria de uma solução em linha, isso funcionaria muito bem;
Além disso, você pode querer substituir
com
para que o usuário não role para o topo da sua página ao clicar no link.
fonte
href="#"
e selecionar todos esses links com jquery e chamare.preventDefault()
noclick
manipulador de eventos para que o navegador não role.Você pode fornecer alguns IDs ao formulário e ao link e depois se inscrever para o
onclick
evento do link esubmit
do formulário:e depois:
Eu recomendo que você use um botão de envio para enviar formulários, pois respeita a semântica da marcação e funcionará mesmo para usuários com o javascript desativado.
fonte
HTML e CSS - Sem solução Javascript
HTML:
CSS:
fonte
isso funciona bem sem nenhuma função especial necessária. Muito mais fácil escrever com php também.
<input onclick="this.form.submit()"/>
fonte
<input onclick="this.form.submit()"> Some Text</input>
fonte
Funciona perfeito no meu caso.
você pode usá-lo na função também como,
Defina "theForm" como seu ID de formulário. Está feito.
fonte
aqui está a melhor solução para sua pergunta: dentro do formulário você tem este código:
no arquivo CSS, faça o seguinte:
em JS você faz isso:
Ai está.
fonte