次の単純化された HTML および jQuery コードを検討してください。
<select id="select1">
<option value="10">10</option>
<option value="5">5</option>
<option selected="selected" value="1">1</option>
</select>
$('#select1').change(function () {
if ($('#select1').val() > 5) {
$('#select1').val(1);
alert("Select set to 1");
}
});
ユーザーが選択コントロールから 10 を選択すると、コントロール自体の変更イベント内から 1 にリセットされます。これはデスクトップ マシンのブラウザからは機能しますが、iPhone または iPad の Chrome や Safari では機能しません。(実際にはモバイル ブラウザでは、選択は 1 に設定され、その後 10 に戻ります)
基本的に、特定の条件下でユーザーが選択できるものを制限しようとしています。
独自の変更イベント内から選択コントロールのオプションをリセットし、モバイル ブラウザーで動作させる方法はありますか?