Tôi đang cố tìm cách chạy hàm JavaScript khi người dùng chọn một tùy chọn trong hộp HTML select
, bất kể tùy chọn này đã được chọn hay chưa. Vì vậy, onchange
không nằm trong câu hỏi.Thay thế cho onblur/onchange trong lựa chọn
Vấn đề với việc sử dụng onblur
là (trong Chrome và Safari, ít nhất) sự kiện không được kích hoạt cho đến khi người dùng nhấp vào phần tử khác. Điều này cũng có thể gây khó chịu nếu người dùng tập trung vào lựa chọn, sau đó nhấp chuột mà không chọn tùy chọn, trong trường hợp đó tôi không muốn sự kiện được kích hoạt.
Tôi đã có thể đạt được một số thành công bằng cách cung cấp cho mỗi tùy chọn một trình xử lý onmouseup
, nhưng điều này chỉ hoạt động trong Firefox, theo như tôi có thể nói. Ý tưởng nào?
Liệu ' onclick' làm việc? – Barmar
@Barmar - Không. Tôi đoán rằng chỉ Firefox hỗ trợ các sự kiện nhấp chuột cho các phần tử 'option'. Tuy nhiên, tôi sẽ đề cập đến việc tôi chưa thử nghiệm điều này trong IE. –
Một giải pháp xấu xí sẽ là tạo 'selectIndex = -1' bất cứ khi nào' onfocus', vì vậy bạn có thể lắng nghe một cách an toàn 'onchange'. Điều đó sẽ gây khó chịu cho người dùng bàn phím, nhưng nếu bạn cho rằng khách hàng của mình không quan tâm đến những gì họ đã chọn trước đó, điều này có thể đáng để thử nghiệm. – Passerby