2013-02-11 46 views
7

Tôi muốn tạo nút gửi biểu mẫu trên biểu mẫu HTML có văn bản khác với từ khóa sẽ được gửi tới máy chủ lưu trữ. Vì vậy, tôi sử dụngTôi có nên sử dụng HTML <button> hoặc <input> không?

<button type="submit" name="SubmitAction" value="Done" accesskey="D"><u>D</u>one for Now</button> 

Nhưng W3Schools cảnh báo:

Lưu ý: Nếu bạn sử dụng các yếu tố <button> ở dạng HTML, trình duyệt khác nhau có thể nộp giá trị khác nhau. Sử dụng <input> để tạo các nút ở dạng HTML.

Có cách nào để tạo nút bằng cách sử dụng <input> văn bản hiển thị trên nút khác với giá trị sẽ được gửi tới máy chủ không?

Các biến thể mà trình duyệt khác nhau gửi với <button> là gì?

Lưu ý: Tôi không phải hỗ trợ bất kỳ điều gì cũ hơn mà IE 9 và việc sử dụng sẽ thực sự là với các phiên bản Chrome và FireFox hiện tại.

+0

thể trùng lặp của [Sự khác biệt giữa ] (http://stackoverflow.com/questions/ 3543615/khác biệt giữa đầu vào-loại-trình-và-nút-loại-submittext-nút) –

+0

Bạn có thể sử dụng một hàm onsubmit để nối thêm giá trị bạn muốn vào biểu mẫu khi đầu vào được nhấn như thuốc nổ nói. –

+7

Dường như bạn đang trích dẫn http://www.w3schools.com/tags/tag_button.asp - Xin đừng nhầm lẫn giữa W3Schools với W3C. W3C duy trì một số tiêu chuẩn web. W3Schools đắm mình trong vinh quang được phản ánh về việc có tên tương tự trong khi lưu trữ một số hướng dẫn (hầu hết là lỗi thời), nhiều trong số đó có lỗi và các vấn đề về bảo mật. – Quentin

Trả lời

7

Số <button> so với <input> khác biệt khá cổ và bạn sẽ không gặp vấn đề gì khi sử dụng trình duyệt hiện đại.

Nếu bạn muốn sử dụng <input type="submit"> để gửi giá trị khác với giá trị được hiển thị ... thì không. Thay vào đó, chỉ cần thêm một yếu tố đầu vào:

<input type="submit" value="Displayed Value"> 
<input type="hidden" name="name" value="Actual Value"> 
+1

Giới thiệu về ý tưởng 'đầu vào' nhiều: Nhưng tôi có nhiều nút, mỗi nút gửi một hành động khác nhau - Lưu, Xong, Xuất bản, Hủy. –

+1

chỉ chắp thêm đầu vào bị ẩn khi biểu mẫu được gửi tùy thuộc vào nút được nhấn với một số javascript trên sự kiện onsubmit –

+0

@SoftwareMonkey bạn có thể dựa vào tên của nút gửi nhưng không phải giá trị của nó –

Các vấn đề liên quan