Quero enviar um formulário usando jQuery. Alguém pode fornecer o código, uma demonstração ou um link de exemplo?
Depende se você está enviando o formulário normalmente ou através de uma chamada AJAX. Você pode encontrar muitas informações em jquery.com , incluindo documentação com exemplos. Para enviar um formulário normalmente, consulte o submit()
método nesse site. Para o AJAX , existem muitas possibilidades diferentes, embora você provavelmente deseje usar os métodos ajax()
ou post()
. Observe que post()
é realmente apenas uma maneira conveniente de chamar o ajax()
método com uma interface simplificada e limitada.
Um recurso crítico, que eu uso todos os dias, que você deve marcar como é o jQuery funciona . Possui tutoriais sobre o uso do jQuery e a navegação à esquerda dá acesso a toda a documentação.
Exemplos:
Normal
$('form#myForm').submit();
AJAX
$('input#submitButton').click( function() {
$.post( 'some-url', $('form#myForm').serialize(), function(data) {
// ... do something with response from server
},
'json' // I expect a JSON response
);
});
$('input#submitButton').click( function() {
$.ajax({
url: 'some-url',
type: 'post',
dataType: 'json',
data: $('form#myForm').serialize(),
success: function(data) {
// ... do something with the data...
}
});
});
Observe que os métodos ajax()
e post()
acima são equivalentes. Existem parâmetros adicionais que você pode adicionar à ajax()
solicitação para lidar com erros, etc.
$.post
explicitamente desconstroem e reconstroem o formulário para gerar dados a serem enviados. Obrigado!$('form#MyForm').serialize() + '&newData=' + newData + '&moreData=' + moreData
. Nota: os dois últimos podem precisar ser codificados em URL usandoencodeURIComponent()
. OU - você pode mudar para usar a codificação JSON nas duas extremidades, mas precisará inserir os dados do formulário em uma estrutura de dados JavaScript com seus dados extras e serializá-los. Nesse caso, você provavelmente usarserializeArray
no formulário e mesclar seus outros dados.Você terá que usar
$("#formId").submit()
.Você geralmente chamaria isso de dentro de uma função.
Por exemplo:
Você pode obter mais informações sobre isso no site Jquery .
fonte
quando você tem um formulário existente, que agora deve funcionar com jquery - ajax / post, agora você pode:
faça suas próprias coisas
Observe que, para que a
serialize()
função funcione no exemplo acima, todos os elementos do formulário precisam ter seusname
atributos definidos.Exemplo do formulário:
@PtF - os dados são enviados usando POST nesta amostra, então isso significa que você pode acessar seus dados via
, em que dataproperty1 é um "nome-da-variável" no seu json.
aqui exemplo de sintaxe, se você usar o CodeIgniter:
fonte
No jQuery, eu preferiria o seguinte:
Mas, novamente, você realmente não precisa do jQuery para executar essa tarefa - basta usar JavaScript regular:
fonte
No manual: jQuery Doc
fonte
Para informações,
se alguém usar
Não faça algo assim
Demorou muitas horas para descobrir que o envio () não funcionaria assim.
fonte
"sumit"
digitação na palavra-chave deixa claro se o erro de digitação não é intencional na resposta ou está relacionado ao problema. Você quer dizer que um botão chamado"submit"
bagunça o formulário jquery submit ()? Ou você quer dizer que o problema foi que você deu o nome do botão enviar em vez do padrãotype="submit"
?Use-o para enviar seu formulário usando jquery. Aqui está o link http://api.jquery.com/submit/
fonte
button
ao seu botão para garantir que o formulário não seja enviado (pois nem todos os navegadores tratam botões sem nenhum tipo da mesma maneira).isto enviará um formulário com o preloader:
Tenho algum truque para fazer com que os dados de um formulário sejam reformados com o método aleatório http://www.jackart4.com/article.html
fonte
Veja eventos / envie .
fonte
Observe que, se você já instalou um ouvinte de evento de envio para o seu formulário, a chamada interna para submit ()
não funcionará, pois tenta instalar um novo ouvinte de evento para o evento de envio deste formulário (que falha). Portanto, você precisa acessar o próprio elemento HTML (desembrulhar do jQquery) e chamar submit () nesse elemento diretamente:
fonte
Você também pode usar o plugin do formulário jquery para enviar usando o ajax também:
http://malsup.com/jquery/form/
fonte
fonte
Observe que no Internet Explorer há problemas com formulários criados dinamicamente. Um formulário criado como este não será enviado no IE (9):
Para fazê-lo funcionar no IE, crie o elemento do formulário e anexe-o antes de enviar da seguinte maneira:
Criar o formulário como no exemplo 1 e depois anexá-lo não funcionará - no IE9, gera um erro JScript
DOM Exception: HIERARCHY_REQUEST_ERR (3)
Adereços para Tommy W @ https://stackoverflow.com/a/6694054/694325
fonte
Até agora, as soluções exigem que você saiba o ID do formulário.
Use este código para enviar o formulário sem precisar saber o ID:
Por exemplo, se você deseja manipular o evento click de um botão, pode usar
fonte
Se o botão estiver localizado entre as tags do formulário, prefiro esta versão:
fonte
você poderia usá-lo assim:
OU
fonte
Truque do IE para formulários dinâmicos:
fonte
Minha abordagem um pouco diferente Altere o botão para o botão enviar e clique em
fonte
Ele publicará os dados do formulário no seu nome de arquivo via AJAX.
fonte
Eu recomendo uma solução genérica para que você não precise adicionar o código para todos os formulários. Use o plugin do formulário jquery (http://jquery.malsup.com/form/) e adicione este código.
fonte
você poderia fazer assim:
fonte
Também usei o seguinte para enviar um formulário (sem realmente enviá-lo) via Ajax:
fonte