2011-08-02 63 views
11

CẬP NHẬT Từ @BrendanEich Mẫu onsubmit so với nút gửi onclick

@mplungjan onclick của trình chỉ rơi ra khỏi đó là một nút; form onsubmit rõ ràng là tốt hơn.


Đó sẽ là những lý do để bao giờ sử dụng onclick của một nút gửi để xác định có hay không phải là hình thức phải được nộp?

Tôi tin tưởng mạnh mẽ rằng

  1. để thực hiện một cái gì đó trước khi nộp và hủy nộp trong trường hợp lỗi, sự kiện onsubmit của hình thức là nơi rõ ràng để đặt nó
  2. Nếu bạn sử dụng onclick của một trình và sau đó quyết định sử dụng loại = "hình ảnh" trình xử lý sự kiện sẽ không thành công trong nhiều trình duyệt
  3. nếu bạn thay đổi nút gửi, bạn cũng sẽ phải thêm một trình xử lý sự kiện onclick.

Tôi đang tìm kiếm các lý do mạnh mẽ để thích sử dụng sự kiện onclick của nút gửi hơn trên biểu mẫu yêu cầu của biểu mẫu.

CẬP NHẬT: Xin lưu ý rằng tôi không biết rõ về nhiều vấn đề xung quanh việc gửi và xác thực biểu mẫu.
Ví dụ mà nộp bằng javascript sẽ không kích hoạt onsubmit http://jsfiddle.net/mplungjan/3A4Ha/

<form onsubmit="alert('onSubmit called')"> 
    <input type="text" value="This will submit on enter but in IE the onclick is not triggered" style="width:100%"/><br/> 
    <input type="submit" onclick="alert('Clicked')" /> 
</form><br /> 
<a href="#" onclick="alert('Submitting by script'); return false">Submit by script will not trigger onsubmit</a> 

Ngoài ra rằng IE sẽ không kích hoạt onclick nếu bạn nhấn enter trong mẫu tại fiddle tôi


Lịch sử:

Tham gia thảo luận tại đây

html button not clickable without being disabled

Tôi có một không thích mãnh liệt của việc sử dụng onclick của một nút gửi cho bất cứ điều gì do nhiều năm nhìn thấy điều này không làm việc trong một số trình duyệt, phiên bản chủ yếu là cũ của IE. Tôi đã liệt kê một vài lý do rõ ràng, nhưng tôi chắc chắn họ sẽ không thuyết phục được người dùng cứng.

Cộng đồng của SO có thể giúp tôi gắn móng tay này lên tường không, như họ đóng đinh w3schools? Cũng cảm thấy tự do để đưa ra nhận xét về cách tôi có thể cụm từ câu hỏi này một cách chấp nhận được.


1: kể từ những ngày của NS2.x và IE3.02

+1

Trông giống như một cuộc thảo luận hơn là một câu hỏi ... nhìn ra ngoài !! Ồ, tôi đồng ý với việc sử dụng sự kiện gửi. :-) – RobG

+0

Tôi đồng ý với việc sử dụng biểu mẫu đăng ký - điều này cũng bao gồm bạn để gửi qua khóa nhập thay vì nút gửi. – nnnnnn

+0

Có thể trùng lặp: http://stackoverflow.com/questions/4529012/should-i-use-the-inputs-onclick-or-the-forms-onsubmit-event-to-validate-form-fi –

Trả lời

12

Mẫu onsubmit là một phương pháp chính xác hơn, vì lý do đơn giản rằng một hình thức cũng có thể được nộp cùng với chìa khóa <ENTER>, và không chỉ bằng cách nhấp vào nút gửi.

+0

Ngoài ra, Javascript. – Paddy

+0

Điều đó quá :) Nhưng tôi có xu hướng đưa ra một ví dụ thực tế hơn. Tốt gọi mặc dù. –

+0

Chỉ vì mục đích hoàn chỉnh, cho khách truy cập trong tương lai. :) Nhưng có, bạn bao phủ 99% trường hợp sử dụng, đó là lý do tại sao tôi chỉ nhận xét về câu trả lời của bạn thay vì thêm câu trả lời của riêng tôi. – Paddy

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