Событие изменения не срабатывает на выбранных элементах с помощью Mobile Safari «помощник по формам» - PullRequest
9 голосов
/ 07 октября 2011

У меня есть динамические выпадающие меню выбора. Например, если вы выберете определенный месяц, второй элемент выбора будет заполнен количеством дней в этом месяце.

Это работает так, как задумано, однако, когда пользователь находится на iPhone и использует кнопку «Далее», встроенную в «помощник по формам» в Mobile Safari, событие change (с использованием jQuery) не запускается, а второе выберите не обновлять.

$('.month').change(function() {
    // update "days" select element
});

К вашему сведению, я также использую jQuery mobile

Ответы [ 2 ]

5 голосов
/ 07 октября 2011

Вы также можете связать некоторые дополнительные события, такие как blur (хотя не знаю, срабатывает ли размытие на iphone)

$('.month').bind('change blur',function(){

});

или вы уже пробовали:

$('.month').live('change',function(){
});
2 голосов
/ 23 ноября 2011

Лучший обходной путь, который я смог найти, был основан на этом посте ...

Странное поведение события onSchange () select / dropdown в onchange () при использовании «Next» в выпадающем списке Mobile Safari.поле выбора

Используя плагин (по ссылке выше), мне пришлось принудительно установить меню выбора на blur, как только была выбрана опция с «помощником по формам» в Mobile Safari.

Однако я заметил, что при тестировании этих меню методом «грубой силы» дополнительное событие blur срабатывает после нескольких возвратов назад и вперед.Дополнительный focus, кажется, исправил это.

$('select').quickChange(function () {
    $(this).blur();
    $('select').focus(); // somehow prevents an extra blur from firing on focus
});

С отдельной функцией change я обновляю второе меню выбора динамически.

$("#select-choice-month").change(function () {
    // update second select dynamically
});

* Проверено только на Mobile Safari/ iOS 5.0.1 пока что.

...