2011-07-07 41 views
1

我需要獲取SELECT標籤的當前值。爲此,我使用$('select').val(),但這隻返回默認值,並且不會更改。可能是我可以幫助我嗎?使用jQuery獲取<select>的值

$('div#buy input').fancybox({ 
    ajax : { 
     type : "POST", 
     data : { 
      id: $('input[name="id"]').val(), 
      count: $('#count').val() 
     } 
    } 
}); 

<select id="count"> 
    <option>1</option> 
    <option>2</option> 
    <option>3</option> 
    <option>4</option> 
    <option>5</option> 
</select> 
+0

你一定在做別的事情,因爲它的工作原理:http://jsfiddle.net/aNQJY/ –

+1

問題是'fancybox'可能在頁面加載時運行,所以在頁面加載時讀取值,然後它當然是默認的。更改時必須讀取該值。 –

+0

地雷腳本是最後一次加載。 – NiLL

回答

2

在jQuery中,$('#count').val()將給當前選擇值爲「ID」爲<select>的元素。我懷疑你的代碼示例在用戶做出選擇之前正在運行,這就是爲什麼你得到默認值。您應該在用戶做出選擇後的某個時間設置您的count屬性。像這樣的東西將工作:

var fancyboxOptions = { 
    ajax : { 
     type : "POST", 
     data : { 
      id: $('input[name="id"]').val(), 
      count: $('#count').val() 
     } 
    } 
} 

$(document).ready(function() { 
    $('div#buy input').fancybox(fancyboxOptions); 
    $('#count').change(function() { 
     fancyboxOptions.ajax.data.count = $('#count').val(); 
    }); 
}); 

這樣,選項更改時選項對象將更新。

+0

這是工作,但只是特定的。 AJAX只發送計數值。對id有任何想法? – NiLL

+1

我確定它有同樣的問題。您還需要添加一個'change'事件處理程序或一些等價物。 – FishBasketGordo

+0

Tnx的建議,我現在正在這樣做^ _ ^ – NiLL

3

你可以使用在下拉列表中選擇:selected選擇,以獲得當前選擇的項目:

var selectedValue = $('#count :selected').val() 

UPDATE

下面是這個工作的快速小提琴:http://jsfiddle.net/deYmN/

+0

你的選擇是有點關閉。它應該是'select:selected'(在「select」和「:selected」之間有一個空格)。 – FishBasketGordo

+0

這不應該起作用。 ':selected'只適用於'option'元素。 –

+0

那不是真的Felix:http://jsfiddle.net/deYmN/ –

3

試試這個:

$('select option:selected').val(); 
5

$('#count').val()將返回當前選定的值。您缺少選項的值。

<select id="count"> 
<option value="1">1</option> 
<option value="2">2</option>........ 

編輯:

如果你不想在選項指定的值比你可以使用。

$('#count :selected').val() 
+1

你不需要'價值'。如果該屬性未設置,則將該文本用作值。 –

+2

你說得對,他可以使用$('#count'),但這不是因爲他缺少選項的值。值是可選的。 –

+0

@Felix Kling,傑米狄克遜。感謝您的澄清。 –

1

您是否在用戶更改select前運行fancybox/ajax?

它的工作原理在這裏罰款:

http://jsfiddle.net/ERfFA/

+0

是的,我在此之前加載所有腳本... – NiLL

+0

那麼當腳本加載時,它將獲取第一個值(默認值)。您必須在用戶選擇他想要的內容後運行該腳本。 – switz

1

用途:

$('select :selected').val() 

Source

1
$("#count option:selected").val(); 
//Use text to get the text presented on the ui 
$("#count option:selected").text(); 

工作例如:http://jsfiddle.net/AKmHU/

1

您選擇的ID是 「數」,所以你需要做這樣的事情:

$( '#計數:選擇')。VAL()