<select>
デフォルトで属性multiple
と最初のオプションが選択されたhtmlタグを使用して、動的ドロップダウンを作成しています:
<select multiple="multiple" size="1">
<option value="" selected="selected">All</option>
<option value="1">One</option>
<option value="2">Two</option>
</select>
One
たとえば、ユーザーがオプションをタップすると、想定される動作は、オプションの選択を解除してAll
オプションを選択するOne
ことです。
iPad ブラウザがドロップダウンのネイティブ UI を開くと、ドロップダウン コントロールからタッチ イベントをキャッチできます (プラグインのコード スニペット):
this.$el.on('change', this.selectOption, this);
以下の方法でオプションを操作して選択を解除します。
selectOption: function(e){
var opts = element.find('option');
opts.each(function(idx, opt){
$(opt).prop('selected', false);
});
}
問題
オプションのプロパティはfalse
適切に設定されていますが、iPad のドロップダウン UI で視覚的に選択されたオプションは変更されていないため、ユーザーが混乱する可能性があります。ドロップダウンの [完了] ボタンをタップ
すると、UI の変更が適用されます。次に開くと、すべてのオプションの選択が解除されていますが、これは問題ありませんが、少し遅れています ;-)。
質問
ユーザーが 1 つのオプションをタップし、もう 1 つのオプションがネイティブの iPad ドロップダウンでリアルタイムに削除されるように、オプションを選択/選択解除することは可能ですか?