HTML ส่งปุ่ม: ค่า / ปุ่มข้อความต่างกันหรือไม่


139

ฉันต้องการสร้างปุ่มส่งแบบฟอร์ม HTML ที่มีค่า 'add tag'อย่างไรก็ตามหน้าเว็บเป็นภาษาสวีเดนดังนั้นฉันต้องการมีข้อความปุ่มที่แตกต่างกันข้อความบนปุ่ม

นั่นคือฉันต้องการมีปุ่มเหมือน

ป้อนคำอธิบายรูปภาพที่นี่

แต่ฉันต้องการรหัสของฉันเช่น

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

เป็นไปได้ไหม ถ้าเป็นเช่นนั้นได้อย่างไร


4
ฉันคิดว่าคุณค่าไม่ควรสำคัญ คุณก็ควรตรวจสอบการปรากฏตัวของ "add_tag" ในข้อมูลที่โพสต์
greg0ire

6
ฉันอ่านสิ่งนี้ว่า "ฉันต้องการให้ข้อความของอินพุตไม่เกี่ยวข้องกับการประมวลผลด้านเซิร์ฟเวอร์ของฉัน" ดังนั้นเมื่อคุณมีการแปลหลายแบบสำหรับแบบฟอร์มคุณจะไม่ได้รับหนึ่งในค่าข้อความที่โพสต์ มันสำคัญเมื่อแบบฟอร์มของคุณมีปุ่มส่งหลายปุ่มและคุณต้องการทำอะไรถ้า (request.getParameter ("submit-type") เท่ากับ ("add-tag") ... เพื่อดูว่าอันไหนกดแล้ว
ijw

คำตอบ:


228

เป็นไปได้โดยใช้buttonองค์ประกอบ

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

จากหน้า W3C ในbutton:

ปุ่มที่สร้างขึ้นด้วยฟังก์ชั่นองค์ประกอบ BUTTON เช่นเดียวกับปุ่มที่สร้างขึ้นด้วยองค์ประกอบ INPUT แต่พวกมันมีความเป็นไปได้ในการเรนเดอร์ที่ดียิ่งขึ้น: องค์ประกอบของปุ่มอาจมีเนื้อหา


7
เพิ่งทราบว่าสิ่งนี้ไม่ทำงานตามที่โฆษณาบน IE6 / 7 บทความนี้อาจแก้ไขปัญหาได้ แต่คุณจะมีปัญหาหากคุณใช้ asp.net หรือกรอบงานอื่นที่ไม่อนุญาตให้ใช้ HTML ใน postback: allinthehead.com/retro/330/…
ristonj

คุณสามารถใช้ชื่อคุณสมบัติที่ให้ผลลัพธ์ใน POST
TheSatinKnight

23

ทำตามคำแนะนำ @ greg0ire ในความคิดเห็น:

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

ในฝั่งเซิร์ฟเวอร์ของคุณคุณจะทำสิ่งที่ชอบ:

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

(เนื่องจากฉันไม่รู้ภาษานั้น (java?) อาจมีข้อผิดพลาดทางไวยากรณ์)

ฉันจะชอบ<button>วิธีการแก้ปัญหา แต่มันไม่ทำงานตามที่คาดไว้ใน IE <9


13

มีคำตอบมากมายที่นี่อธิบายสิ่งที่คุณสามารถทำได้ (ฉันใช้ชื่อเขตข้อมูลที่แตกต่างกันหนึ่ง) แต่คำตอบที่ง่าย (และยังไม่ระบุ) คำถามของคุณคือ 'ไม่' - คุณไม่สามารถใช้ข้อความและค่าที่แตกต่างกันได้ เพียงแค่ HTML


2

ฉันไม่รู้ว่าฉันทำให้คุณถูกต้อง แต่อย่างที่ฉันเข้าใจคุณสามารถใช้ฟิลด์เพิ่มเติมที่ซ่อนอยู่พร้อมกับค่า "เพิ่มแท็ก" และให้ปุ่มมีข้อความที่ต้องการ


3
ไม่เป็นประโยชน์กับปุ่มหลายปุ่มในแบบฟอร์มเดียวกันซึ่งฉันคิดว่าเป็นปัญหาของ OP
ijw

ไม่เห็นหลักฐานใด ๆ จากคำถามของเขาว่ามีหลายปุ่มในแบบฟอร์มเดียวกัน
Darren

0

หากคุณจัดการ "เพิ่มแท็ก" ผ่าน JScript:

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

หรือสูงกว่าถ้าจัดการกับการโหลดหน้าเว็บซ้ำ


2
Yay, JS ต้องการทุกรูปแบบโดยไม่คำนึงถึงความเรียบง่าย ยินดีต้อนรับสู่ ASP.NET
ijw

ในฐานะนักพัฒนา ASP.Net ฉันสามารถยืนยันได้ : P สมมติว่าคุณยังมีชีวิตอยู่ในยุคของเว็บฟอร์มต่อไป ASP.Net MVC ดีกว่ามาก ไม่มีมุมมองแบบฟอร์มการห่อทั่วโลกและอื่น ๆ
James Billingham
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.