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.