При попытке удалить любой выбранный параметр в элементе выбора, Safari показывает его пустым - PullRequest
0 голосов
/ 09 августа 2010

Изучите этот код.Я использую jQuery, но я думаю, что это, вероятно, не имеет значения.

JavaScript

​$(function() {

  $('button').click(function() {

    $('select option[selected]').removeAttr('selected');

  });

});

HTML

<select>
    <option>a</option>
    <option selected="selected">b</option>
    <option>c</option>

</select>

<button>give me a click</button>

Это работало нормально, если кнопка сброс выбор до первого варианта.Я только что протестировал его в Safari, и он закрывает выбор вместо выбора первого.

Это не проблема, пока я не установил его и не запустил на iPad, где большая часть этой сетиПриложение будет использоваться.Проблема с iPad заключается в том, что после выбора опции выбор отказывается отображать выбранную опцию.Он по-прежнему отображается пустым.

Как лучше всего обойти это?

Ответы [ 2 ]

3 голосов
/ 09 августа 2010

Вы можете исправить поведение, явно указав индекс с использованием собственного свойства selectedIndex JavaScript .

$(function() {

  $('button').click(function() {

    $('select option[selected]').removeAttr('selected');

    $('select')[0].selectedIndex = 0;

  });

});​

Если у вас есть более одного select элемента, вам нужно будет перебрать jQuery's each и установить свойство на this.

1 голос
/ 09 августа 2010

А как же:

$('select option:first-child').attr('selected', 'selected');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...