2016-08-25 20 views
9

Mam formularz na stronie i chcę złożyć przy użyciu javascript:Przesłanie nie działa?

<script> 
    function deleteFromlist(listname, listvalue) 
    { 
    if (confirm("Are you sure you want to delete this?")) { 
     document.getElementById('fromList').value=listname; 
     document.getElementById('deleteRecord').value=listvalue; 
     document.getElementById('watchlistForm').submit(); // fails here 
    } 
    } 
</script> 
<form method='POST' 
    id='watchlistForm' 
    enctype='multipart/form-data' 
    action='process.php'> 
<input type='text' name='fromList' id='fromList' value=''> 
<input type='text' name='deleteRecord' id='deleteRecord' value=''> 
<input type='submit' name='submit' value='submit'> 
</form> 

Funkcja JavaScript jest wywoływana z href w tabeli w innym miejscu na stronie. Poprawnie wypełnia pola wejściowe, ale kończy się niepowodzeniem z tym komunikatem:

TypeError: document.getElementById(...).submit is not a function 
    document.getElementById('watchlistForm').submit(); 

Jeśli zastąpię dokument .... submit(); z

alert(document.getElementById('watchlistForm').innerHTML 

następnie otrzymuję oczekiwane wyjście w oknie alertu. Stąd

document.getElementById('watchlistForm') 

ma rozwiązać do elementu formularza.

Dodanie przycisku przesyłania w formularzu działa zgodnie z oczekiwaniami.

Pytanie

jestem na coś straty, dlaczego to nie działa.

+2

Nie znaczy "document.getElementById ('') deleteRecord value = listvalue;". ? Myślę, że zapomniałeś .value –

+0

Czy masz wiele WatchlistForm (s)? – Liam

+0

Spróbuj sprawdzić wynik polecenia 'console.log (document.getElementById ('watchlistForm'). Submit)' - jeśli to nie jest funkcja, to da ci wskazówkę. – GreyCat

Odpowiedz

6

Wygląda na to, że przycisk o nazwie jako "przesłanie" maskował metodę. Zmiana:

input type='submit' name='submit' value='submit' 

do

input type='submit' name='submitButton' value='submit' 

rozwiązał problem

+1

Oh wow, to ma sens. Zapomniałem, że możesz uzyskać dostęp do elementów formularza po nazwie przez sam formularz. –

+0

Dzięki - jestem zaskoczony, że więcej osób nie ma tego problemu ... – Booligoosh

Powiązane problemy