Автоматически установите флажок, если отображается только один - PullRequest
0 голосов
/ 15 июня 2010

Итак, у меня есть переключатели в форме

<li><input type="radio" name="names" value="blah"><a>Some text (blah)</a></li>

. Имеется более 100 таких переключателей.

Теперь у меня есть фильтр jQuery, начиная с здесь .Фильтр работает хорошо.

Но я хочу установить оператор jQuery, который будет автоматически выбирать переключатель, если он, среди показанных, единственный из оставшихся.

Фильтр использует show() и hide(), что, как я предполагаю, означает, что он переключает его с дисплея: блок на отображение: нет;

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

     if($('li').attr({"display":"block"}).size()==1)
      {
      $('input[cvs_name]:eq(1)').attr('checked', 'checked');
      }

Как я могу это сделать?

Ответы [ 2 ]

4 голосов
/ 16 июня 2010
var $visible = $('ul').find('li:visible');
if($visible.length == 1) {
    $visible.find('input:radio').attr('checked','checked');
}
1 голос
/ 16 июня 2010

Попробуйте:

if ($("li:visible").length === 1) {
    $("li:visible input").attr("checked", "checked");
}

jQuery имеет фильтр visible, который выбирает только те элементы, которые не скрыты.(И, конечно, фильтр hidden, который выбирает те, которые есть.)

...