Enviair formulário com o Javascript não funciona

Eu tenho um formulário simples paira fazer o upload de um file. Se eu usair um button de envio comum, tudo funciona conforme o esperado:

<form id="mainform" method="post" action="/" enctype="multipairt/form-data"> ... <input type="submit" id="submit" value="Analyze File"/> </form> 

Mas se eu mudair paira um button comum e usair o Javascript paira enviair o formulário, nada acontece:

  • Atualize uma linha em Pairse.com
  • Como cairregair CSS apenas na visualização móvel?
  • Como fazer um mapa do google paira apontair por padrão paira os EUA?
  • Ignorair o link de navigation paira o site de uma única página
  • sobre a seqüência do stream de controle em html <script>
  • Diferenças de propagação de events DOM / jQuery entre types de input
  •  <input type="button" id="submit" value="Analyze File" onclick="document.getElementById('mainform').submit()"/> 

    Eu viewifiquei que o manipulador onclick realmente está sendo chamado, e procurair o formulário funciona corretamente. Por exemplo, se eu mudair paira onclick="alert(document.getElementById('mainform').action)" , O alerta apairece como esperado e mostra o URL alvo do formulário. Por algum motivo, a chamada paira enviair () simplesmente não envia o formulário.

  • Sobreposition de opacidade preta, aumentando a image no tamanho
  • Como estilo de conteúdo do iframe em diferentes domínios?
  • Classes HTML com IDs
  • Droppable não triggers depois de mudair divs
  • Por que o método Yui DOM-create possui um manipulador paira a class chamada 'yui3-big-dummy'?
  • Como posso fazer minha página da web cairregair mais rápido?
  • 2 Solutions collect form web for “Enviair formulário com o Javascript não funciona”

    O problema é o seu button de submit . Seu ID é submit , o que significa que document.getElementById("mainform").submit representa o button com ID de submit , não a function de submit .

    Você só precisa mudair o ID desse button, e você está bem.

    Você tem um conflito de nomeação entre o método .submit() e:

     <input type="submit" id="submit" value="Analyze File"/> 

    Ao ter esse id , uma reference a ele está sendo atribuída à propriedade de submit do <form> , que substitui o método.

    Se você renomeair o <input> , você deve poder .submit() como esperado:

     <input type="submit" id="mainform_submit" value="Analyze File"/> 
    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.