У меня была такая же проблема на моем сайте.Мне удалось это исправить, вручную опрашивая свойство selectedIndex
в элементе управления select.Таким образом, он срабатывает, как только вы «проверяете» элемент в списке.Вот плагин jQuery, который я написал для этого:
$.fn.quickChange = function(handler) {
return this.each(function() {
var self = this;
self.qcindex = self.selectedIndex;
var interval;
function handleChange() {
if (self.selectedIndex != self.qcindex) {
self.qcindex = self.selectedIndex;
handler.apply(self);
}
}
$(self).focus(function() {
interval = setInterval(handleChange, 100);
}).blur(function() { window.clearInterval(interval); })
.change(handleChange); //also wire the change event in case the interval technique isn't supported (chrome on android)
});
};
Вы используете его так же, как и событие "change".Например:
$("#mySelect1").quickChange(function() {
var currVal = $(this).val();
//populate mySelect2
});
Редактировать : Android не фокусирует выделение при нажатии на него, чтобы выбрать новое значение, но также не имеет той же проблемы, что и iphone.Так что исправьте это, подключив старое событие change
.