Czy ktoś może mi powiedzieć, co dzieje się z tym kodem? Próbowałem przesłać formularz z JavaScript, ale pojawił się błąd „.submit nie jest funkcją”. Zobacz więcej szczegółów kodu:
<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>
Próbowałem także:
<script type="text/javascript">
function submitAction()
{
document.forms["frmProduct"].submit();
}
</script>
Oba pokazują mi ten sam błąd :(
javascript
html
dom
submit
Jin Yong
źródło
źródło
Odpowiedzi:
oznacza, że nazwałeś swój przycisk przesyłania lub jakiś inny element
submit
. Zmień nazwę przycisku na,btnSubmit
a połączenie zadziała w magiczny sposób.Po nadaniu nazwy przyciskowi przesłania zastępujesz
submit()
funkcję w formularzu.źródło
#submit
, możesz go obejść, kradnącsubmit()
metodę instancji innej formy , npdocument.createElement('form').submit.call(document.frmProduct)
. : .EDYCJA: Przypadkowo zamieniłem identyfikator
źródło
Upewnij się, że nie ma innego formularza o tej samej nazwie i upewnij się, że w formularzu nie ma nazwy = "zgłoś" lub id = "zgłoś".
źródło
Jeśli nie masz możliwości zmiany
name="submit"
, możesz również przesłać formularz w ten sposób:źródło
HTMLFormElement.prototype.submit.call(form)
działa równieżMiałem ten sam problem podczas tworzenia aplikacji MVC przy użyciu stron wzorcowych. Próbowałem wyszukać element z „przesłaniem” jako nazwami, jak wspomniano powyżej, ale tak nie było.
W moim przypadku utworzyłem wiele tagów na mojej stronie, więc wystąpiły problemy z odniesieniem do prawidłowego formularza.
Aby obejść ten problem, pozwól przyciskowi obsłużyć, którego obiektu formularza użyć:
i z js:
źródło
Ten temat ma już wiele odpowiedzi, ale ta, która działała najlepiej (i najprostsza - jedna linia!) Była dla mnie modyfikacją komentarza Neila E. Pearsona z 21 kwietnia 2013 r .:
Moja modyfikacja jego metody i co zadziałało dla mnie:
document.createElement('form').submit.call(document.getElementById(frmProduct));
źródło
nadanie elementowi formy nazwy submission spowoduje proste przesłanie właściwości submission. upewnij się, że nie masz elementu formularza o nazwie „Prześlij” i powinieneś być w stanie dobrze uzyskać dostęp do funkcji przesyłania.
źródło
W rzeczywistości rozwiązanie jest bardzo łatwe ...
Oryginalny:
Rozwiązanie:
źródło
Powinieneś użyć tego kodu:
źródło
To, czego użyłem, to
Tylko dlatego, że wszystko inne nie działało.
źródło
Rozwiązaniem było dla mnie ustawienie atrybutu „forma” przycisku
lub jest js:
źródło
Możliwe rozwiązania -
1.Upewnij się, że nie masz żadnego innego elementu o nazwie / identyfikatorze podczas przesyłania.
2. Spróbuj wywołać funkcję jako
onClick = "return submitAction();"
3.
document.getElementById("form-name").submit();
źródło
Możesz spróbować
Nie masz więcej niż jednego formularza o tej samej nazwie?
źródło
Użyj getElementById:
źródło