2016-12-16 142 views
1

我一直在試圖讓我的第二個選擇「選定」的值,但它總是返回我「」。其實我已經選擇了第二個選擇的第二個選項。它似乎不斷返回我的第一個選項,而不是實際選擇的選項。jquery最後選擇選擇器的值

這是顯示的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(); 

總是得到「」。

如果我嘗試:

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

它將返回我 「1」 < - 預期值。

你能幫忙嗎?

編輯: 當此HTML網頁鉻控制檯上,選擇第二選擇的第一選擇和「阿泰斯特」「SGICM」測試後,我辦: $(「[NAME ='filterSelect 「]:最後「)VAL();

在控制檯上,輸出將是「」

EDIT2: 一些調試後,看到我是能夠得到正確的選擇值的jsfiddle,得出的結論是評論一些引導等後使用的模板文件,選擇正常工作。稍後嘗試去...

+0

您可以創建的jsfiddle? – Device

+0

最好使用'.form-control.selectFilter'來選擇類,而不是使用'[class = ...]'。 – Barmar

+0

你爲什麼試圖得到:最後? – Banzay

回答

0

$("select[class='form-control selectFilter']:last option:selected").val() 只有在DOM中的最後一個<select>(相關類的)元素中選擇了選項時,語句纔會返回定義的值。 下面的代碼工作:

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

如果你想實現一棵樹,我認爲你需要或者分配唯一的ID爲每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') 

說明:

你想第二select的第二option的價值。

選擇器option:nth-of-type(2)意味着第二個選項

選擇器option:nth-of-type(2).eq(1)意味着第二選項,第二次

+0

感謝實際工作。這是什麼黑色的來源? – danc911

+0

但是,如果嘗試$(「[name ='filterSelect']」)。val();在jsfiddle它實際上工作。 – danc911

+0

好吧,明白你的意思,但它是獲得固定值的選擇,即使我選擇其中的另一個值 – danc911

0

實際上,這是爲了解決這個問題而編寫的一個on change事件,以便在全局變量上記錄用戶選擇,因爲我無法獲取select:last。

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