Проверьте, выбран ли параметр с помощью jQuery, если не выбран по умолчанию - PullRequest
203 голосов
/ 29 сентября 2008

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

(Выбор генерируется с помощью лабиринта функций PHP в приложении, которое я только что унаследовал, так что это быстрое решение, пока я разбираюсь с ними:)

Ответы [ 18 ]

1 голос
/ 04 декабря 2009

Вы, ребята, слишком много делаете для выбора. Просто выберите по значению:

$("#mySelect").val( 3 );
1 голос
/ 21 марта 2015

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

    if(!$('#some_select option[selected="selected"]').val()) {
        //here code if it HAS NOT selected value
        //for exaple adding the first value as "placeholder"
        $('#some_select option:first-child').before('<option disabled selected>Wybierz:</option>');
    }

Если # some_select не имеет выбранной по умолчанию опции, тогда .val () равно undefined

1 голос
/ 21 августа 2013
if (!$("#select").find("option:selected").length){
  //
}
0 голосов
/ 17 января 2016

Если вам нужно явно проверить каждую опцию, чтобы увидеть, есть ли у какой-либо атрибут «выбранный», вы можете сделать это. В противном случае, используя option:selected, вы получите значение для первой опции по умолчанию.

var viewport_selected = false;      
$('#viewport option').each(function() {
    if ($(this).attr("selected") == "selected") {
        viewport_selected = true;
    }
});
0 голосов
/ 22 апреля 2014

Я просто искал что-то подобное и нашел это:

$('.mySelect:not(:has(option[selected])) option[value="2"]').attr('selected', true);

Находит все выбранные меню в классе, для которых еще не выбрана опция, и выбирается опция по умолчанию (в данном случае «2»).

Я попытался использовать :selected вместо [selected], но это не сработало, потому что что-то всегда выбрано, даже если ничто не имеет атрибута

0 голосов
/ 14 февраля 2014

Измените событие на поле выбора, чтобы оно сработало, и как только это произойдет, просто потяните атрибут id выбранной опции: -

$("#type").change(function(){
  var id = $(this).find("option:selected").attr("id");

  switch (id){
    case "trade_buy_max":
      // do something here
      break;
  }
});
0 голосов
/ 02 апреля 2012
$("#select_box_id").children()[1].selected

Это еще один способ проверить, выбран вариант или нет в jquery. Это вернет логическое значение (True или False).

[1] - индекс опции выбора поля

0 голосов
/ 15 августа 2010
$("option[value*='2']").attr('selected', 'selected');
// 2 for example, add * for every option
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...