Próbuję znaleźć sposób na uruchomienie funkcji JavaScript, gdy użytkownik wybierze opcję w polu HTML select
, niezależnie od tego, czy ta opcja była już wybrana. Tak więc onchange
jest wykluczone.Alternatywa dla onblur/onchange w wyborze
Problem z używaniem onblur
polega na tym, że (przynajmniej w przeglądarce Chrome i Safari) zdarzenie nie jest uruchamiane, dopóki użytkownik nie kliknie innego elementu. Może to również okazać się irytujące, jeśli użytkownik skupi się na selekcji, a następnie kliknie bez wybierania opcji, w którym to przypadku nie chcę, aby zdarzenie zostało wyzwolone.
Udało mi się osiągnąć sukces, nadając każdej z opcji obsługę onmouseup
, ale działa to tylko w Firefoksie, o ile wiem. Jakieś pomysły?
Does ' onclick' działa? – Barmar
@Barmar - Nie. Przypuszczam, że tylko Firefox obsługuje zdarzenia klikania dla elementów 'option'. Wspomnę jednak, że nie przetestowałem tego w IE. –
Brzydkim rozwiązaniem byłoby utworzenie 'selectedIndex = -1' za każdym razem, gdy' onfocus', dzięki czemu można bezpiecznie słuchać 'onchange'. Byłoby to denerwujące dla użytkowników klawiatury, ale jeśli założysz, że twoi klienci nie dbają o to, co wcześniej wybierali, może to być warte testu. – Passerby