Armadilhas da vida!
Hoje deparei com esse erro estranho pra mim, nunca tinha que acontecido antes.
Em um dos projetos que estou desenvolvendo, existe um menu dropdown, e queria que ao selecionar uma opção o formulário era automaticamente enviado. criei a função javascript pra ser menos intrusiva possível e caso o browser esteja com o javascript desabilitado o menu dropdown pode ser ativado com um botão de submit na frente 🙂
Mas… como não sou um Expert (ainda! :P), cometi um erro muito bobo!
e pior, quebrei a cabeça a manha inteira!! e nada de resolver o problema, o firefox só me retornava “submit(); is not a function”. Depois de muito quebrar a cabeça, consegui resolver o problema. Irei mostrar pra vocês, qual o problema e como resolver, para que ninguém cometa esse mesmo erro que eu.
- span class=”st0″>’myform’‘estande’
Esse ai em cima, é o danado do javascript
1. <form action="/estandes/to" method="post" id="myform" name="myform">
2. 3. <label for="estande">Ir para o estande:</label>
4. 5. <select name="estande" id="estande">
6. 7. <option value="exemplo1">exemplo1</option>
8. 9. <option value="exemplo2">exemplo1</option>
10. 11. </select>
12. 13. <input id="submit" name="submit" value="Ir" type="submit" />
14. 15. </form>
Esse é o culpado de tudo, a marcação html, o botão submit estava com o valor “submit” no atributo id e name.
Foi ai que descobri, eu estava chamando o botão submit e não a função submit(); 🙂 “submit(); is not a function. Submit is a button” 😉
Se eu alterar o valor dos atributos id e name do botão submit tudo estará resolvido, eu posso ate apagar o atributo name, ele não esta sendo usado mesmo! hehe … porem eu não posso alterar nem apagar o id, se não precisarei alterar um bocado de CSS 🙁
E agora José, o que eu faço?
Facinho 😉 … basta alterar
De
1. f.submit();
Para
1. f.submit.click();
e “voiala” todos vivemos felizes para sempre, com javascript não intrusivo, e ainda por cima funciona no IE 🙂
Abraços!