Przycisk przesyłania HTML: inna wartość / tekst przycisku?


139

Chciałbym utworzyć przycisk przesyłania formularza HTML z wartością 'add tag' , jednak strona internetowa jest w języku szwedzkim, więc chciałbym mieć inny tekst przycisku .

To znaczy chcę mieć taki przycisk

wprowadź opis obrazu tutaj

ale chcę mieć taki kod

if (request.getParameter(cmd).equals("add tag"))
    tags.addTag( /*...*/ );

czy to możliwe? Jeśli tak to jak?


4
Myślę, że wartość nie powinna mieć znaczenia. Powinieneś po prostu sprawdzić obecność „add_tag” w danych POST
greg0ire

6
Odczytuję to jako „Chcę, aby tekst danych wejściowych nie był związany z przetwarzaniem po stronie mojego serwera”, tak że gdy masz kilka tłumaczeń formularza, nie otrzymasz jednej z kilku opublikowanych wartości tekstowych. Ma to znaczenie, gdy formularz ma kilka przycisków przesyłania i chcesz to zrobić, jeśli (request.getParameter ("submit-type"). Equals ("add-tag") ... aby zobaczyć, który z nich został naciśnięty.
ijw

Odpowiedzi:


228

Jest to możliwe za pomocą buttonelementu.

<button name="name" value="value" type="submit">Sök</button>

Ze strony W3C na button:

Przyciski utworzone za pomocą elementu BUTTON działają podobnie jak przyciski utworzone za pomocą elementu INPUT, ale oferują bogatsze możliwości renderowania: element BUTTON może mieć treść.


7
Uwaga, to nie działa tak, jak reklamowano w IE6 / 7. Ten artykuł może rozwiązać problem, ale będziesz mieć problemy, jeśli używasz asp.net lub innej platformy, która nie zezwala na HTML podczas ogłaszania zwrotnego
ristonj

możesz również po prostu użyć właściwości name, która dostarcza dane wyjściowe w POST
TheSatinKnight

23

Zgodnie z sugestią @ greg0ire w komentarzach:

<input type="submit" name="add_tag" value="Lägg till tag" />

Po stronie serwera zrobisz coś takiego:

if (request.getParameter("add_tag") != null)
    tags.addTag( /*...*/ );

(Ponieważ nie znam tego języka (java?), Mogą wystąpić błędy składniowe).

Wolałbym <button>rozwiązanie, ale nie działa zgodnie z oczekiwaniami na IE <9 .


13

Jest tutaj wiele odpowiedzi wyjaśniających, co możesz zrobić (używam innej nazwy pola), ale prosta (i jeszcze nieokreślona) odpowiedź na twoje pytanie brzmi `` nie '' - nie możesz mieć innego tekstu i wartości, używając tylko HTML.


2

Nie wiem, czy dobrze zrozumiałem, ale jak rozumiem, możesz użyć dodatkowego ukrytego pola z wartością „dodaj tag” i pozwolić, aby przycisk miał żądany tekst.


3
Nie jest to pomocne w przypadku wielu przycisków w tym samym formularzu, co moim zdaniem jest problemem OP.
Ijw

Nie widzę żadnego dowodu z jego pytania, że ​​na tym samym formularzu znajduje się wiele przycisków.
Darren,

0

Jeśli obsługujesz „dodawanie tagu” przez JScript:

<form ...>
<button onclick="...">any text you want</button>
</form>

Lub powyżej, jeśli obsługuje się przez ponowne załadowanie strony


2
Tak, JS wymagany dla każdego formularza, niezależnie od prostoty. Witamy w ASP.NET.
Ijw

Jako programista ASP.Net mogę to potwierdzić. : P Zakładając, że i tak nadal żyjesz w czasach formularzy internetowych. ASP.Net MVC jest dużo lepszy. Brak danych o wyświetleniach, globalne pakowanie formularzy itp.
James Billingham
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.