Alguém pode me dizer o que está acontecendo de errado com este código? Tentei enviar um formulário com JavaScript, mas o erro ".submit não é uma função" é mostrado. Veja abaixo para mais detalhes do código:
<form action="product.php" method="get" name="frmProduct" id="frmProduct" enctype="multipart/form-data">
<input onclick="submitAction()" id="submit_value" type="button" name="submit_value" value="">
</form>
<script type="text/javascript">
function submitAction()
{
document.frmProduct.submit();
}
</script>
Eu também tentei isso:
<script type="text/javascript">
function submitAction()
{
document.forms["frmProduct"].submit();
}
</script>
Ambos me mostram o mesmo erro :(
javascript
html
dom
submit
Jin Yong
fonte
fonte
Respostas:
significa que você nomeou seu botão de envio ou algum outro elemento
submit
. Renomeie o botão parabtnSubmit
e sua chamada funcionará magicamente.Ao nomear o botão enviar, você substitui a
submit()
função no formulário.fonte
#submit
, você pode obter em torno dele por roubar de outra instância do formuláriosubmit()
método, por exemplo:document.createElement('form').submit.call(document.frmProduct)
.EDIT: Eu acidentalmente troquei os IDs ao redor
fonte
Verifique se não há outro formulário com o mesmo nome e verifique se não há name = "submit" ou id = "submit" no formulário.
fonte
Se você não tem oportunidade de alterar,
name="submit"
também pode enviar o formulário desta maneira:fonte
HTMLFormElement.prototype.submit.call(form)
também funcionaEu tive o mesmo problema quando estava criando um aplicativo MVC usando com páginas mestras. Tentei procurar o elemento com 'submit' como os nomes mencionados acima, mas não foi o caso.
Para o meu caso, ele criou várias tags na minha página, por isso houve alguns problemas relacionados ao formulário correto.
Para contornar isso, deixarei o botão manipular qual objeto de formulário usar:
e com o js:
fonte
Este tópico já tem muitas respostas, mas a que funcionou melhor (e mais simples - uma linha!) Para mim foi uma modificação do comentário feito por Neil E. Pearson em 21 de abril de 2013:
Minha modificação no método dele e o que funcionou para mim:
document.createElement('form').submit.call(document.getElementById(frmProduct));
fonte
atribuir um nome a um elemento de formulário a uma sombra simples da propriedade de envio. verifique se você não possui um elemento de formulário com o nome submit e deve conseguir acessar a função de envio corretamente.
fonte
De fato, a solução é muito fácil ...
Original:
Solução:
fonte
Você deve usar este código:
fonte
O que eu usei é
Só porque todo o resto não funcionou.
fonte
A solução para mim foi definir o atributo "formulário" do botão
ou é js:
fonte
Soluções possíveis -
1. Certifique-se de que você não tem nenhum outro elemento com nome / ID como enviar.
2.Tente chamar a função como
onClick = "return submitAction();"
3.
document.getElementById("form-name").submit();
fonte
Podes tentar
Você não tem mais de um formulário com o mesmo nome?
fonte
Use getElementById:
fonte