Szukam najładniejszego sposobu na stworzenie formularza HTML, który nie ma przycisku przesyłania. To samo w sobie jest dość łatwe, ale muszę również zatrzymać ponowne ładowanie formularza, gdy wykonywane są czynności podobne do przesyłania (na przykład trafienie Enterw pole tekstowe).
javascript
html
forms
Matt Roberts
źródło
źródło
Odpowiedzi:
Dodaj procedurę obsługi onsubmit do formularza (za pomocą zwykłego js lub jquery $ (). Submit (fn)) i zwróć wartość false, chyba że zostaną spełnione określone warunki.
Chyba że nigdy nie chcesz, aby formularz był przesyłany - w takim przypadku dlaczego nie po prostu pominąć atrybutu „action” w elemencie formularza?
źródło
action
atrybutu nie jest formularzem, zgodnie ze standardami - i faktycznie powoduje przeładowanie strony w niektórych przeglądarkach. Zauważyłem, że toaction="javascript:void(0);"
działa dobrze.Będziesz chciał dołączyć
action="javascript:void(0);"
do swojego formularza, aby zapobiec ponownemu ładowaniu strony i zachować standard HTML.źródło
Po prostu dodaj to wydarzenie do swojego pola tekstowego. Uniemożliwi to przesłanie po naciśnięciu klawisza Enter, a Ty możesz dodać przycisk przesyłania lub formularz wywoławczy.submit () zgodnie z wymaganiami:
Na przykład:
źródło
Gdy wciśniesz enter w formularzu, naturalnym zachowaniem formularza jest wysłanie, aby zatrzymać to zachowanie, które nie jest naturalne, musisz uniemożliwić mu wysłanie (zachowanie domyślne), za pomocą jquery:
źródło
pomysł:
i
źródło
Dwa sposoby rozwiązania:
źródło
textarea
s i prawdopodobnie wybranie autouzupełniania lub menu rozwijanych, a telefon komórkowy może być kolejnym źródłem problemów.Pierwsza odpowiedź to najlepsze rozwiązanie:
Bardziej szczegółowo z jQuery:
Pisanie rozszerzeń Chrome to przykład, w którym możesz mieć formularz do wprowadzania danych przez użytkownika, ale nie chcesz, aby był przesyłany. Jeśli użyjesz action = "javascript: void (0);", kod prawdopodobnie będzie działał, ale skończysz z tym problemem, w którym pojawi się błąd związany z uruchamianiem wbudowanego JavaScript.
Jeśli całkowicie pominiesz tę czynność, formularz zostanie ponownie załadowany, co jest również niepożądane w niektórych przypadkach podczas pisania rozszerzenia Chrome. Lub jeśli masz stronę internetową z jakimś wbudowanym kalkulatorem, w którym użytkownik wprowadzałby pewne dane wejściowe i klikał „Oblicz” lub coś w tym rodzaju.
źródło