2009-11-25 45 views
12

Chỉ cần cố gắng thực hiện các nút này vào lúc này: http://web.archive.org/web/20110721191046/http://particletree.com/features/rediscovering-the-button-element/nút vs input type = "submit" vs a onclick = "document.formname.submit()"

Không thể quyết định để đi cho, vì đây chúng tôi chủ yếu sử dụng IE6. Theo như tôi có thể nói ...

nút:

  • Cho phép bạn gửi biểu mẫu như bình thường (tức là đánh vào trên form), cho phép bạn vô hiệu hóa nó, tiêu chuẩn phù hợp, không dựa vào javascript
  • không: hover trong IE6 mà không sử dụng Suckerfish, nhưng bạn không thể thì phong cách nó cho phù hợp và được giới hạn chỉ là một màu nền & có viền đen khủng khiếp trong IE6

input type = "submit":

  • Cũng cho phép của bạn gửi biểu mẫu như thường lệ
  • Không thể bao gồm hình ảnh, do đó bạn sẽ có một số lượng ngớ ngẩn của các file class cho những gì tôi cần, và một lần nữa không : hover trong IE6 mà không Suckerfish

a onclick = "document.formname.submit()"

  • Dễ phong cách trong IE6 mà không any hacks
  • Không dễ dàng để làm việc với, mà không cần hack! tức là bạn không thể gửi nút có phím enter

... vì vậy tôi tự hỏi, trong số ba, cái nào thường được ưa thích nhất? Lý tưởng nhất tôi đoán tôi muốn chức năng trên phong cách, nhưng nó là một yêu cầu để có Javascript kích hoạt ở đây (nó chỉ dành cho một trang mạng nội bộ) và tôi đoán thường mọi người không nhớ quá nhiều những gì đang xảy ra trong nền? Hmm.

+0

Có lẽ là giải pháp tồi tệ nhất bao giờ hết, nhưng nếu sử dụng document.formname.submit() mà tôi cũng có thể bao gồm nút gửi ẩn, để người dùng vẫn có thể nhấn enter để gửi biểu mẫu như bình thường? Hmm. – Nick

+3

Thực ra "loại đầu vào = gửi" là loại không cần javascript để gửi. Đối với "loại = nút" và "nút", Firefox và có thể một số trình duyệt khác có thể gửi biểu mẫu chứ không phải trình duyệt IE. Bạn cũng bỏ lỡ "input type = image" là thay thế hình ảnh cho "type = submit". –

+0

Cảm ơn okw - loại đầu vào = "hình ảnh" có vẻ tốt nhưng tôi cũng muốn một số văn bản. Ví dụ: nếu người dùng nhập thông tin chính xác, tôi muốn một biểu tượng đánh dấu nhỏ và một số văn bản xuất hiện, nếu không nó sẽ bị chuyển sang màu xám và bị tắt. – Nick

Trả lời

11

Đi cho onclick = "document.formname.submit()" lộ trình cho kiểu và thêm nút ẩn cho chức năng.

+0

Cảm ơn - Tôi có thể làm điều này, tôi biết nó thực sự không lý tưởng từ một quan điểm mã hóa, nhưng có thể cho người dùng nó sẽ làm việc tốt nhất. – Nick

+3

thử onclick = "document.formname.submit(); return false;" để ngăn chặn xử lý onclick dafault. – NilColor

5

Tôi khuyên bạn nên gửi nút, đơn giản chỉ vì đó là chính xác những gì nó có cho. Nếu bạn có bất kỳ người dùng bị vô hiệu nào, nút gửi sẽ là nút có ý nghĩa nhất đối với họ.

Nếu bạn thực sự không thích đường viền xung quanh các nút trong IE6, bạn luôn có thể ẩn nút gửi bằng JavaScript và sau đó tạo nút của riêng bạn với kiểu bạn muốn, bất cứ khi nào nút nhà của bạn được nhấp, bạn gọi trình xử lý sự kiện onclick của nút gửi (sẽ gửi biểu mẫu). Điều này vẫn cho phép người dùng nhấn phím enter để gửi dữ liệu và giữ khóa gửi trong đó cho những người đã tắt JavaScript.

3

Nếu bạn sử dụng <a> với onclick, đừng quên để thiết lập role="button"wairole="button" và cũng thiết lập các handler onkeypress để làm cho "nút " truy cập!

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