jQuery select2 получить значение select tag?


привет друзья это мой код:

<select id='first'>
  <option value='1'> First  </option>
  <option value='2'> Second </option>
  <option value='3'> Three  </option>
</select>

Это мой код select2:

$("#first").select2();

Ниже приведен код для получения выбранного значения.

$("#first").select2('val'); // It returns first,second,three.

Это возвращает текст, как first,second,three и я хочу сделать 1,2,3.
Значит мне нужно значение select box, а не текст.

9 61

9 ответов:

$("#first").val(); // this will give you value of selected element. i.e. 1,2,3.

чтобы получить Select элемент вы можете использовать $('#first').val();

чтобы получить текст выбранного значения -$('#first :selected').text();

не могли бы вы разместить свой select2() функции код

$("#first").select2('data') вернет все данные в виде карты

Это решение позволяет забыть выбрать элемент. Полезно, когда у вас нет идентификатора на выбранных элементах.

$("#first").select2()
.on("select2:select", function (e) {
    var selected_element = $(e.currentTarget);
    var select_val = selected_element.val();
});

Если вы используете ajax, вы можете сделать обновленное значение of select сразу после выбора.

//Part 1

$(".element").select2(/*Your code*/)    

//Part 2 - continued 

$(".element").on("select2:select", function (e) { 
  var select_val = $(e.currentTarget).val();
  console.log(select_val)
});

Кредиты: Стивен Джонстон

посмотреть эта скрипка.
В принципе, вы хотите получить valueвашей option-теги, но вы всегда пытаетесь получить значение вашего select-узел с $("#first").val().

поэтому мы должны выбрать опцию-теги и мы будем использовать селекторы jQuerys:

$("#first option").each(function() {
    console.log($(this).val());
});

$("#first option") выбирает каждый option который является дочерним элементом элемента с идентификатором first.

попробуйте это :

$('#input_id :selected').val(); //for getting value from selected option
$('#input_id :selected').text(); //for getting text from selected option

простой ответ :

$('#first').select2().val()

и вы можете написать так же:

 $('#first').val()

другие ответы не работает для меня, поэтому я разработал решение:

Я создал опцию С class= "option-item" для легкого таргетинга

HTML:

<select id="select-test">
<option value="5-val" id="first-id" class="option-item"> First option </option>
</select>

затем для каждого выбранного варианта, я добавил display none свойства

CSS:

option:checked {
   display: none;
}

Теперь мы можем добавить изменить к нашему SelectBox для того чтобы найти наш выбранный вариант с свойством дисплея никаким простым :скрытый атрибут

JQuery:

$('#select-test').change(function(){
//value 
    $('#select-test').find('.option-item:hidden').val();
//id
    $('#select-test').find('.option-item:hidden').attr('id');
//text
    $('#select-test').find('.option-item:hidden').text();
});

рабочая скрипка:https://jsfiddle.net/Friiz/2dk4003j/10/