Nie musisz już używać form.submit()
. Zrób to poprawnie (onsubmit
) lub użyj click()
na przycisku wysyłania.
Robi to właściwie ...
Nie mogę myśleć o dobry powód, aby automatycznie przesłać widzialną postać. Aby przesłać dane bez interakcji użytkownika, należy użyć XMLHttpRequest lub WebSockets.
Formularz jest przesyłany przez interakcję użytkownika (np. Naciśnięcie przycisku przesyłania), więc nie ma potrzeby używania JavaScript do przesyłania formularza. Jest bardziej prawdopodobne, że potrzebujesz JavaScript do prevent a form submission, zwracając false
w obsłudze zdarzeń .
... lub użyj click()
Do programowo walidacji invoke HTML5 (a także wszelkie JavaScript onsubmit
obsługi zdarzeń dołączonych do formularza), można wywołać funkcję click()
z przycisku twierdzą, że należy do postaci .
Jeśli formularz ma przycisku przedstawienia, można utworzyć tymczasowy:
var form = document.getElementById("mc-embedded-subscribe-form");
var button = document.createElement('input');
button.type = 'submit';
button.style.display = 'none';
form.appendChild(button);
button.click();
formularze z wieloma przedłożyć przyciski powinien mieć każdy name
atrybuty więc serwer może wykryć, który przycisk kliknął użytkownik. Możesz kliknąć te przyciski za pomocą form.buttonName.click()
.
Co masz na myśli przez "zachować komunikaty o błędach"? Jaki jest pożądany efekt? – Whothehellisthat
@Whothehellisthat Zakładam, że chce, aby nadal się pojawiały/działają. –
Jakie API zwraca wynik w funkcji zamknięcia? A w jaki sposób uniemożliwia to określenie wyniku z obsługi zdarzeń 'onsubmit'? Nie powinno, wystarczy użyć API z wewnątrz obsługi zdarzeń 'onsubmit'. –