Проверьте, выбран ли параметр с помощью jQuery, если не выбрать значение по умолчанию

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

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

Ответ 1

Пока я не уверен точно, что вы хотите выполнить, этот бит кода работал у меня.

<select id="mySelect" multiple="multiple">
  <option value="1">First</option>
  <option value="2">Second</option>
  <option value="3">Third</option>
  <option value="4">Fourth</option>
</select>

<script type="text/javascript"> 
$(document).ready(function() {
  if (!$("#mySelect option:selected").length) {
    $("#mySelect option[value='3']").attr('selected', 'selected');
  }
});
</script>

Ответ 2

Не нужно использовать jQuery для этого:

var foo = document.getElementById('yourSelect');
if (foo)
{
   if (foo.selectedIndex != null)
   {
       foo.selectedIndex = 0;
   } 
}

Ответ 3

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

Чтобы проверить, имеет ли элемент выбора какие-либо выбранные элементы:

if ($('#mySelect option:selected').length > 0) { alert('has a selected item'); }

или чтобы проверить, не выбран ли выбор:

if ($('#mySelect option:selected').length == 0) { alert('nothing selected'); }

или если вы находитесь в какой-то петле и хотите проверить, выбран ли текущий элемент:

$('#mySelect option').each(function() {
    if ($(this).is(':selected')) { .. }
});

чтобы проверить, не выбран ли элемент в цикле:

$('#mySelect option').each(function() {
    if ($(this).not(':selected')) { .. }
});

Вот некоторые из способов сделать это. У jQuery есть много разных способов решения одной и той же вещи, поэтому вы обычно выбираете, какой из них наиболее эффективен.

Ответ 4

lencioni answer - это то, что я бы рекомендовал. Вы можете изменить селектор для опции ('#mySelect option:last'), чтобы выбрать параметр с определенным значением, используя "#mySelect option[value='yourDefaultValue']". Подробнее о селекторах.

Если вы активно работаете с избранными списками на клиенте, ознакомьтесь с этим плагином: http://www.texotela.co.uk/code/jquery/select/. Взгляните на источник, если вы хотите увидеть еще несколько примеров работы с избранными списками.

Ответ 5

Здесь моя функция меняет выбранный параметр. Он работает для jQuery 1.3.2

function selectOption(select_id, option_val) {
    $('#'+select_id+' option:selected').removeAttr('selected');
    $('#'+select_id+' option[value='+option_val+']').attr('selected','selected');   
}

Ответ 6

<script type="text/javascript"> 
$(document).ready(function() {
  if (!$("#mySelect option:selected").length)
   $("#mySelect").val( 3 );

});
</script>

Ответ 7

Я уже наткнулся на плагин texotela, который позволил мне решить его следующим образом:

$(document).ready(function(){
    if ( $("#context").selectedValues() == false) {
    $("#context").selectOptions("71");
    }
});

Ответ 8

Легко! По умолчанию должен быть первый вариант. Готово!. Это приведет вас к ненавязчивому JavaScript, потому что JavaScript не нужен:)

Ненавязчивый JavaScript

Ответ 9

Посмотрите selectedIndex элемента select. BTW, что простая вещь OL DOM, а не JQuery-специфическая.

Ответ 10

Это был быстрый script я нашел, что работал... .Result присваивается метке.

$(".Result").html($("option:selected").text());

Ответ 11

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

$("#mySelect").val( 3 );

Ответ 12

if (!$("#select").find("option:selected").length){
  //
}

Ответ 13

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

    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

Ответ 14

$("option[value*='2']").attr('selected', 'selected');
// 2 for example, add * for every option

Ответ 15

$("#select_box_id").children()[1].selected

Это другой способ проверки опции, который выбран или нет в jquery. Это вернет Boolean (True или False).

[1] является индексом опции select box

Ответ 16

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

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

  switch (id){
    case "trade_buy_max":
      // do something here
      break;
  }
});

Ответ 17

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

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

Это находит все выбранные меню в классе, которые еще не имеют выбранного параметра, и выбирает вариант по умолчанию (в этом случае "2" ).

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

Ответ 18

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

var viewport_selected = false;      
$('#viewport option').each(function() {
    if ($(this).attr("selected") == "selected") {
        viewport_selected = true;
    }
});

Ответ 19

Рассматривайте это как ваш избранный список:

<select onchange="var optionVal = $(this).find(':selected').val(); doSomething(optionVal)">

                                <option value="mostSeen">Most Seen</option>
                                <option value="newst">Newest</option>
                                <option value="mostSell">Most Sell</option>
                                <option value="mostCheap">Most Cheap</option>
                                <option value="mostExpensive">Most Expensive</option>

                            </select>

то вы проверяете выбранный вариант следующим образом:

function doSomething(param) {

    if ($(param.selected)) {
        alert(param + ' is selected!');
    }

}