Nút gửi HTML: Giá trị khác nhau / nút văn bản?


139

Tôi muốn tạo một nút gửi biểu mẫu HTML với giá trị 'add tag' , tuy nhiên, trang web bằng tiếng Thụy Điển, vì vậy tôi muốn có một văn bản nút khác .

Đó là, tôi muốn có một nút như

nhập mô tả hình ảnh ở đây

nhưng tôi muốn có mã của tôi như

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

Điều này có thể không? Nếu vậy thì thế nào?


4
Tôi nghĩ rằng giá trị không quan trọng. Bạn chỉ cần kiểm tra sự hiện diện của "add_tag" trong dữ liệu POST của bạn
greg0ire

6
Tôi đọc điều này là "Tôi muốn văn bản của đầu vào không liên quan đến xử lý phía máy chủ của tôi" để khi bạn có một vài bản dịch cho một biểu mẫu, bạn sẽ không nhận được một trong nhiều giá trị văn bản được đăng. Nó quan trọng khi biểu mẫu của bạn có một số nút gửi và bạn muốn thực hiện nếu (request.getParameter ("loại gửi"). Bằng ("add-tag") ... để xem cái nào được nhấn.
ijw

Câu trả lời:


228

Có thể sử dụng buttonphần tử.

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

Từ trang W3C trên button:

Các nút được tạo bằng chức năng phần tử BUTTON giống như các nút được tạo bằng phần tử INPUT, nhưng chúng cung cấp khả năng hiển thị phong phú hơn: phần tử BUTTON có thể có nội dung.


7
Chỉ cần một lưu ý, điều này không hoạt động như quảng cáo trên IE6 / 7. Bài viết này có thể khắc phục sự cố, nhưng bạn sẽ gặp vấn đề nếu bạn đang sử dụng asp.net hoặc một khung công tác khác không tuân
ristonj

bạn cũng có thể chỉ cần sử dụng thuộc tính tên cung cấp đầu ra trong POST
TheSatinKnight

23

Theo gợi ý @ greg0ire trong các bình luận:

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

Về phía máy chủ của bạn, bạn sẽ làm một cái gì đó như:

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

(Vì tôi không biết ngôn ngữ đó (java?), Có thể có lỗi cú pháp.)

Tôi thích <button>giải pháp hơn, nhưng nó không hoạt động như mong đợi trên IE <9 .


13

Có rất nhiều câu trả lời ở đây giải thích những gì bạn có thể làm (tôi sử dụng tên trường khác nhau) nhưng câu trả lời đơn giản (và chưa được nêu) cho câu hỏi của bạn là 'không' - bạn không thể sử dụng văn bản và giá trị khác chỉ HTML.


2

Tôi không biết liệu tôi đã hiểu đúng chưa, nhưng, theo tôi hiểu, bạn có thể sử dụng một trường ẩn bổ sung với giá trị "thêm thẻ" và để nút có văn bản mong muốn.


3
Không hữu ích với nhiều nút trên cùng một hình thức, mà tôi nghĩ là vấn đề của OP.
ijw

Không thể thấy bất kỳ bằng chứng nào từ câu hỏi của anh ấy rằng có nhiều nút trên cùng một hình thức.
Darren

0

Nếu bạn xử lý "thêm thẻ" qua JScript:

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

Hoặc ở trên nếu xử lý thông qua tải lại trang


2
Yay, JS cần thiết cho mọi hình thức, bất kể đơn giản. Chào mừng bạn đến với ASP.NET.
ijw

Là một nhà phát triển ASP.Net, tôi có thể xác nhận điều này. : P Giả sử bạn vẫn đang sống trong thời đại của các biểu mẫu web. MVC MVC MVC tốt hơn rất nhiều. Không có khung nhìn, hình thức gói toàn cầu, v.v.
James Billingham
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.