Вопрос по events, jquery – JQuery выбрать изменить событие получить выбранный вариант

209

Я связал событие в событии изменения элементов select с этим:

$('select').on('change', '', function (e) {

});

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

LOLOL @ ADG так хорошо! SuperUberDuper
@superuberduper Я избегал jquery так долго, как мог, но сопротивление бесполезно. Вы будете чувствовать себя намного лучше после того, как вас ассимилируют. adg
Почему ты сказал это? Miguel

Ваш Ответ

7   ответов
1
$('#_SelectID').change(function () {
        var SelectedText = $('option:selected',this).text();
        var SelectedValue = $('option:selected',this).val();
});
14
Delegated Alternative

делегированный подход для их слушателя, используйтеe.target (это будет относиться к элементу выбора).

$('#myform').on('change', 'select', function (e) {
    var val = $(e.target).val();
    var text = $(e.target).find("option:selected").text(); //only time the find is required
    var name = $(e.target).attr('name');
}

JSFiddle Demo

+1, потому что это то, что я хочу, но когда я попробовал это локально, это не работает. Только работа на jsfiddle, какие CDN мне нужно добавить?
5
<select id="selectId">
    <option value="A">A</option>
    <option value="B">B</option>
    <option value="C">C</option>
</select>


$('#selectId').on('change', function () {
     var selectVal = $("#selectId option:selected").val();
});

select option, После этого с помощьюjquery Вы можете получить текущее выбранное значение при изменении пользователяselect option значение.

не могли бы вы поделиться более подробным объяснением вашего ответа?
@MostafizurRahman Мой код очень прост, поэтому я написал только код.
1

$('#selectElement').on('change',function(){
   var selectedVal = $(this).val();
                       ^^^^  ^^^^ -> presents #selectElement selected value 
                         |
                         v
               presents #selectElement, 
});
если это так, почему не будет "var selectedVal = $ (" # selectElement "). val () & quot; работа & # XBF;
Случай получает значение, когда событие change отправляется на элемент select. Значение не будет обновляться при выборе изменений, если вам это нравится.
5

вы можете перебирать выбранные элементы, если их несколько;

$('select').on('change', function () {
     var selectedValue = this.selectedOptions[0].value;
     var selectedText  = this.selectedOptions[0].text;
});
selectedOptions доступно не во всех браузерах
@ BernhardD & bf, какие из них? любой источник?
Я скопировал ваш код в IE 11 и получил ошибку. Я закончил сthis.options[ this.options.selectedIndex ]. Mozilla говорит поддерживается Firefox с 26, IE нет поддержки.
67

JQuery найти метод

 $('select').change(function () {
     var optionSelected = $(this).find("option:selected");
     var valueSelected  = optionSelected.val();
     var textSelected   = optionSelected.text();
 });

Вышеупомянутое решение работает отлично, но я решил добавить следующий код для тех, кто желает получить выбранную опцию. Это позволяет вам получить выбранный вариант, даже если это значение выбора не изменилось. (Проверено только с Mozilla)

    $('select').find('option').click(function () {
     var optionSelected = $(this);
     var valueSelected  = optionSelected.val();
     var textSelected   = optionSelected.text();
   });
Ладно, круто! Как я уже сказал, второе решение не поддерживается во многих браузерах!
Привязка кoption События - рискованное предложение, особенно на мобильных устройствах. Например, Webkit не поддерживает это событие правильно:bugs.chromium.org/p/chromium/issues/detail?id=5284
398
$('select').on('change', function (e) {
    var optionSelected = $("option:selected", this);
    var valueSelected = this.value;
    ....
});
@JoshWillik: с тех пор$() псевдонимjQuery()Вы можете найти документацию здесь:api.jquery.com/jQuery Подпись там указана явноjQuery( selector [, context ] ), @ Беллаш: если он "почти одинаковый", то в чем разница? Или что быстрее? я предпочитаю.find() так как это больше ОО ИМО ...
@JoshWillik с$("selector", this) ты находишь всеselector элементы внутриthisконтекст. Пишу$("selector", this) почти так же, как$(this).find('selector')
Как проверить в случае множественного выбора?
@ AdrianF & # xF6; der Для вас и других людей, которые ищут его,.find() примерно на 10% быстрее согласно этому ответу:stackoverflow.com/a/9046288/2767703
Что означает синтаксис $ (& quot; селектор & quot ;, это)? У меня есть общая идея, но я не совсем уверен

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