Chcę wysłać formularz. Ale ja nie zamierzam podstawowy sposób korzystania z przycisku wejścia złożyć typ lecz do łącza.
Poniższy obraz pokazuje, dlaczego. Używam linków do zdjęć, aby zapisać / przesłać formularz. Ponieważ mam standardowe znaczniki css dla łączy do obrazów, nie chcę używać przycisków przesyłania danych wejściowych.
Próbowałem zastosować onClick = "document.formName.submit ()" do elementu a, ale wolałbym metodę html.
Jakieś pomysły?
Odpowiedzi:
Dwie drogi. Utwórz przycisk i nadaj mu styl tak, aby wyglądał jak łącze z css, albo utwórz łącze i użyj
onclick="this.closest('form').submit();return false;"
.źródło
form.submit()
nie będzie działać bez JavaScriptuinput[type=submit].link { border: none; background: none; display: inline; color: blue; text-decoration: underline; }
i<input type=submit class="link" />
Naprawdę nie możesz tego zrobić bez jakiejś formy skryptowania, o ile wiem.
Przykład z tego miejsca .
źródło
Po prostu stylizacja
input type="submit"
podobna do mnie zadziałała:Testowane w Chrome, IE 7-9, Firefox
źródło
input
element za pomocą selektorów CSS bez dołączania klasy do elementu HTML.Używasz obrazów do przesyłania ... więc możesz po prostu użyć
type="image"
„przycisku” do wprowadzania danych:źródło
<button>
element zawierający<img/>
element.posługiwać się:
lub:
plus trochę CSS
źródło
Zdecydowanie nie ma rozwiązania z czystym HTML, aby przesłać formularz ze
a
znacznikiem link ( ). Standardowy kod HTML akceptuje tylko przyciski lub obrazy. Jak powiedzieli inni współpracownicy, można symulować wygląd linku za pomocą przycisku, ale myślę, że nie o to chodzi w tym pytaniu.IMHO uważam, że zaproponowane i przyjęte rozwiązanie nie działa.
Przetestowałem to na formularzu, ale przeglądarka nie znalazła odniesienia do formularza.
Można więc go rozwiązać za pomocą jednej linii JavaScript, używając
this
obiektu, który odwołuje się do klikanego elementu, który jest węzłem potomnym formularza, który należy przesłać. Podobniethis.parentNode
jest z węzłem formularza. Po prostu wywołujesubmit()
metodę w tej formie. Nie jest konieczne badanie całego dokumentu, aby znaleźć odpowiednią formę.Przypuśćmy, że wpisuję własnym nazwiskiem:
Użyłem
get
atrybutu metody formularza, ponieważ po przesłaniu można zobaczyć odpowiednie parametry w adresie URL na załadowanej stronie.To rozwiązanie oczywiście dotyczy każdego tagu, który akceptuje
onclick
zdarzenie lub podobne zdarzenie.this
to doskonały wybór do odzyskania kontekstu wraz zeevent
zmienną (dostępną we wszystkich głównych przeglądarkach i od IE9), której można użyć bezpośrednio lub przekazać jako argument do funkcji.W takim przypadku zamień linię ze
a
znacznikiem na linię poniżej, używając właściwościtarget
, która wskazuje element, który rozpoczął zdarzenie.źródło
Stackoverflow
. Mam nadzieję, że Twoje poprawki pomogą mi ulepszyć mój styl. Mój angielski też nie jest dobry.możesz użyć OnClick = "document.getElementById ('formID_NOT_NAME'). SUBMIT ()"
źródło