Không chắc chắn nơi bạn nhận được huyền thoại của bạn từ nhưng:
Nút gửi với <button>
Như với:
<button type="submit">(html content)</button>
IE6 sẽ gửi tất cả văn bản cho nút này giữa các thẻ, các trình duyệt khác sẽ chỉ gửi giá trị. Sử dụng <button>
cho phép bạn tự do bố trí hơn so với thiết kế của nút. Trong tất cả ý định và mục đích của nó, ban đầu nó có vẻ xuất sắc, nhưng các trình duyệt khác nhau khiến nó khó sử dụng.
Trong ví dụ của bạn, IE6 sẽ gửi text
đến máy chủ, trong khi hầu hết các trình duyệt khác sẽ không gửi gì. Để làm cho nó tương thích trình duyệt chéo, sử dụng <button type="submit" value="text">text</button>
. Tốt hơn nữa: không sử dụng giá trị, bởi vì nếu bạn thêm HTML, nó trở nên khá khó khăn với những gì nhận được ở phía máy chủ. Thay vào đó, nếu bạn phải gửi một giá trị bổ sung, hãy sử dụng trường ẩn.
Nút có <input>
Như với:
<input type="button" />
Theo mặc định, điều này không có gì. Nó thậm chí sẽ không gửi biểu mẫu của bạn. Bạn chỉ có thể đặt văn bản trên nút và đặt kích thước và đường viền bằng CSS. Mục đích ban đầu (và hiện tại) của nó là thực thi một tập lệnh mà không cần phải gửi biểu mẫu đến máy chủ.
Nút gửi bình thường với <input>
Như với:
<input type="submit" />
Giống như trước đây, nhưng thực sự đệ trình các hình thức xung quanh.
Nút gửi hình ảnh với <input>
Như với:
<input type="image" />
Giống như trước đây (gửi), nó cũng sẽ gửi một biểu mẫu, nhưng bạn có thể sử dụng bất kỳ hình ảnh. Đây từng là cách ưa thích để sử dụng hình ảnh làm nút khi cần gửi biểu mẫu. Để kiểm soát nhiều hơn, <button>
hiện đang được sử dụng. Điều này cũng có thể được sử dụng cho các bản đồ hình ảnh phía máy chủ nhưng ngày nay rất hiếm. Khi bạn sử dụng thuộc tính usemap
-attribution và (có hoặc không có thuộc tính đó), trình duyệt sẽ gửi tọa độ X / Y của con trỏ chuột đến máy chủ (chính xác hơn là vị trí con trỏ chuột bên trong nút của thời điểm bạn nhấp vào nó). Nếu bạn bỏ qua các tính năng bổ sung này, thì không gì khác hơn là một nút gửi được ngụy trang dưới dạng hình ảnh.
Có một số khác biệt tinh tế giữa các trình duyệt, nhưng tất cả sẽ gửi thuộc tính value, ngoại trừ <button>
thẻ như được giải thích ở trên.
<input type="submit">
và<button type="submit">
?