VladOsadchyi
@VladOsadchyi
Студент

Как в jQuery получить текст option если он не равен value?

Есть такой html код
<div class="col-sm-10">
    <div class="form-group field-input6">

        <input type="hidden" name="ProductForm[suppliers]" value=""><select id="input6" class="form-control chosen-select js__products__suppliers" name="ProductForm[suppliers][]" multiple="multiple" size="4" data-placeholder="Choose..." style="display: none;">
            <option value="15">test201</option>
            <option value="27">test1012</option>
            <option value="28">test1016</option>
        </select><div class="chosen-container chosen-container-multi" title="" id="input6_chosen" style="width: 100%;"><ul class="chosen-choices">
                <li class="search-field">
                    <input class="chosen-search-input default" type="text" autocomplete="off" value="Choose..." style="width: 100.938px;">
                </li>
            </ul>
            <div class="chosen-drop">
                <ul class="chosen-results"></ul>
            </div></div>

        <div class="help-block"></div>
    </div>
</div>


мне нужно в js функции получить текст выбранного из списка параметра, н-р если выбран первый элемент - то 'test201', как это сделать? желательно с помощью jQuery
  • Вопрос задан
  • 448 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
$('select').change(function() {
  console.log($(':selected', this).text());
});

UPD. Вынесено из комментариев:

это же мультиселект, и когда выбрано два элемента, то имена двух элементов и получаем, а мне нужно только тот который выбрали

$('select').on('click', 'option', function(e) {
  const $target = $(e.target);
  if ($target.is(':selected')) {
    console.log($target.text());
  }
});

или

let prevSelected = [];

$('select').on('change', function(e) {
  const selected = $(':selected', this).get().map(n => n.innerText);
  const newSelected = selected.find(n => !prevSelected.includes(n));
  prevSelected = selected;

  if (newSelected) {
    console.log(newSelected);
  }
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы