2016-12-16 3 views
1

Я пытался получить второе выбранное «выбранное» значение, но оно всегда возвращает меня ». На самом деле я выбрал второй вариант во втором выборе. Кажется, он возвращает мне первый вариант, а не вариант, который выбран.jquery last select selector value

Это HTML отображается:

<table class="table table-striped" id="tableButtonsFilter"> 
    <tbody> 
     <tr id="firstLineFilters"> 
      <td> 
       <button class="btn btn-glintt btn-circle btn-lg" id="1" name="buttonFilterResultsCabecalho" disabled=""> 
        <i class="icon fa fa-search"></i> 
       </button> 
      </td> 
      <td><button class="btn btn-glintt btn-circle btn-lg" id="1" name="buttonFilterResultsCabecalho" disabled="">   <i class="icon fa fa-search"></i>   </button></td> 
      <td><button class="btn btn-glintt btn-circle btn-lg" id="1" name="buttonFilterResultsCabecalho">   <i class="icon fa fa-search"></i>   </button></td> 
     </tr> 
     <tr id="secondLineFilters"> 
      <td> 
       <div class="form-group"> 
        <div class="col-md-4"> 
         <div class="input-group"> 
          <select class="form-control selectFilter" name="filterSelect">    
          <option value=""></option><option value="1">SGICM</option> 
          <option value="2">HIS</option>    
          </select> 
         </div> 
        </div> 
       </div> 
      </td> 
      <td> 
       <div class="form-group"> 
        <div class="col-md-4"> 
         <div class="input-group"> 
          <select class="form-control selectFilter" name="filterSelect">    
          <option value=""></option> 
          <option value="3">teste</option>    
          </select> 
         </div> 
        </div> 
       </div> 
      </td> 
      <td></td> 
     </tr> 
    </tbody> 
</table> 

На этом изображении вы можете заметить, что второй вход выбран:

Selected Values

Я уже пробовал с:

$("select[class='form-control selectFilter']:last option:selected").val(); 

$("select[class='form-control selectFilter']:last option:selected").attr('value'); 

$("[name='filterSelect']:last").val(); 

Allways получает "".

Если я попробовать:

$("[name='filterSelect']").val(); 

Это вернет меня "1" < - Ожидаемое значение.

Вы можете помочь с этим!

EDIT: При тестировании на хромированной консоли с этой HTML страницы и после выбора «SGICM» на первый выбор и «Teste» на второй выбор, если я бегу: $ ("[имя = 'filterSelect «]:. последний") вал();

на консоли, на выходе будет «»

EDIT2: После некоторой отладки и, видя, что я был в состоянии получить правильный выбранное значение в jsfiddle, пришел к выводу, что после того, как комментируя некоторые самозагрузки и другие используемые файлы шаблонов, исправления работали правильно. Постараюсь попасть на это позже ...

+0

Вы можете создать jsfiddle? – Device

+0

Лучше использовать '.form-control.selectFilter' для выбора классов, а не использовать' [class = ...] '. – Barmar

+0

Почему вы пытаетесь получить: последний? – Banzay

ответ

0

$("select[class='form-control selectFilter']:last option:selected").val() заявление будет возвращать определенное значение, только если вы сделали выбор варианта в последнем <select> (соответствующих классов) элемент в DOM. следующий код работает:

$("select").change(function(){ 
    alert ($(this).val()) 
}); 

Если вы хотите реализовать дерево, я думаю, вам нужно либо присвоить уникальный идентификатор для каждого select или добавить определенное имя класса для только последнего изменения select

$("select[class='form-control selectFilter']").change(function(){ 
    $("select").removeClass("active_sel"); 
    $(this).addClass("active_sel"); 
    alert ($(this).val()) 
}); 

и после этого вы можете использовать текущее значение выбора:

$("select[class*='active_sel']").val(); 
0

вы можете использовать селектор:

$('option:nth-of-type(2)').eq(1) 

и получить значение, вы можете использовать:

$('option:nth-of-type(2)').eq(1).attr('value') 

Объяснение:

Вы хотите значение второго option второго select.

Селектор option:nth-of-type(2) означает второй вариант.

Селектор option:nth-of-type(2).eq(1) означает второй вариант, второй раз.

+0

Спасибо, что сработал. Что это за черный источник? – danc911

+0

Но если try $ ("[name = 'filterSelect']"). Val(); в jsfiddle он действительно работает. – danc911

+0

Хорошо, понял, в чем ваша точка, но он получает фиксированное значение выбора, даже если я выбираю другое значение внутри него. – danc911

0

Фактически работал над этим и связал событие on change, чтобы записать выбор пользователя в глобальной переменной, поскольку я не смог получить выбор: последний.

$(document).on("change","[name='filterSelect']",function(){ 
 
\t alert($(this).val()); 
 
})