Bu seçenek zaten seçilmiş olup olmadığına bakılmaksızın, bir kullanıcı bir HTML select
kutusunda bir seçenek seçtiğinde bir JavaScript işlevi çalıştırmanın bir yolunu bulmaya çalışıyorum. Yani onchange
sorunun dışında.Seçimde onblur/onchange alternatif
onblur
kullanımıyla ilgili sorun, (başka bir deyişle, Chrome ve Safari'de, kullanıcı başka bir öğeyi tıklayana kadar etkinlik tetiklenmez) sorunudur. Bu, eğer kullanıcı seçime odaklanırsa can sıkıcı olur, sonra bir seçenek seçmeden tıklar, bu durumda olayın tetiklenmesini istemiyorum.
Seçeneklerin her birine onmouseup
işleyicisini vererek biraz başarı elde edebildim, ancak bu yalnızca Firefox'ta çalıştığım kadarıyla çalışıyor. Herhangi bir fikir?
<select id="mySelect" onfocus="this.selectedIndex=0;" onchange="userDidSomething(event)">
<option>Choose one:</option>
<option>Option 1</option>
<option>Option 2</option>
</select>
JavaScript: kimse bu cevaplamak için rahatsız beri
mu ' onclick 'iş? – Barmar
@Barmar - Hayır. Sadece Firefox'un 'option' elemanları için tıklama olaylarını desteklediğini tahmin ediyorum. Bununla birlikte, bunlardan hiçbirini IE'de test etmediğimi belirteceğim. –
Çirkin bir çözüm, 'onfocus'un her zaman' selectedIndex = -1 'olmasını sağlamaktır, bu yüzden' onchange''i güvenle dinleyebilirsiniz. Bu klavye kullanıcıları için can sıkıcı olurdu, ancak müşterilerinizin daha önce seçtikleri şeyleri umursamadığı varsayılırsa, bu bir teste değer olabilir. – Passerby