Zamiast przycisku przesyłania mam link:
<form>
<a href="#"> submit </a>
</form>
Czy mogę zmusić go do przesłania formularza po kliknięciu?
javascript
html
forms
hyperlink
piaszczysty
źródło
źródło
target="_blank"
nie wydaje się działać.<a role="button" aria-label="submit form" href="javascript:void(0)" onclick="document.querySelector('form').submit()">Submit</a>
Odpowiedzi:
Najlepszym sposobem
Najlepszym sposobem jest wstawienie odpowiedniego tagu wejściowego:
Najlepszy sposób na JS
Umieść drugi kod JavaScript w
DOMContentLoaded
zdarzeniu (wybierz tylko wload
celu zachowania zgodności wstecznej ), jeśli jeszcze tego nie zrobiłeś:Łatwy, niezalecany sposób (pierwsza odpowiedź)
Dodaj
onclick
atrybut do odsyłacza iid
do formularza:Wszystkie sposoby
Jakikolwiek sposób wybierzesz, w
formObject.submit()
końcu otrzymasz call (gdzieformObject
jest obiekt DOM<form>
tagu).Musisz także powiązać taką procedurę obsługi zdarzeń, która wywołuje
formObject.submit()
, więc zostanie wywołana, gdy użytkownik kliknie określony link lub przycisk. Istnieją dwa sposoby:Zalecane: powiąż detektor zdarzeń z obiektem DOM.
Niezalecane: wstaw wbudowany JavaScript. Jest kilka powodów, dla których ta technika nie jest zalecana. Jednym z głównych argumentów jest to, że łączysz znaczniki (HTML) ze skryptami (JS). Kod staje się niezorganizowany i raczej nie do utrzymania.
Teraz dochodzimy do punktu, w którym musisz zdecydować o elemencie UI, który wyzwala wywołanie submit ().
Przycisk
Łącze
Zastosuj powyższe techniki, aby dodać nasłuchiwanie zdarzeń.
źródło
name="submit"
,submit()
metoda formularza nie będzie dostępna.<input type="submit">
ma bardziej znaczenie semantyczne niż, powiedzmy,<a href="#" onclick="...">
. Jest to szczególnie ważne w przypadku czytników ekranu. Jeśli musisz skorzystać z tego drugiego, sugerowałbym skorzystanie z ARIA .Jeśli używasz jQuery i potrzebujesz rozwiązania wbudowanego, zadziałaby to bardzo dobrze;
Możesz także chcieć wymienić
z
dzięki czemu użytkownik nie przewija do góry strony po kliknięciu łącza.
źródło
href="#"
, a następnie zaznacz wszystkie te linki z jQuery i rozmowye.preventDefault()
wclick
obsługi zdarzeń więc przeglądarka nie przewijania.Możesz podać formularzowi i linkowi kilka identyfikatorów, a następnie zapisać się na
onclick
wydarzenie linku isubmit
formularza:i wtedy:
Polecam użycie przycisku przesyłania do przesyłania formularzy, ponieważ szanuje on semantykę znaczników i będzie działał nawet dla użytkowników z wyłączoną obsługą JavaScript.
źródło
HTML i CSS - brak rozwiązania JavaScript
HTML:
CSS:
źródło
działa to dobrze bez żadnej specjalnej funkcji potrzebnej. Dużo łatwiej też pisać w php.
<input onclick="this.form.submit()"/>
źródło
<input onclick="this.form.submit()"> Some Text</input>
źródło
W moim przypadku działa idealnie.
Możesz go również używać w funkcji,
Ustaw „theForm” jako identyfikator formularza. Zrobione.
źródło
oto najlepsze rozwiązanie twojego pytania: w formularzu masz ten kod:
w pliku CSS wykonaj następujące czynności:
w JS robisz to:
Proszę bardzo.
źródło