2009-01-30 82 views
1

我有一個選項框在其中。選項的值獲取每個選項中顯示的項目的ID。
我確實有一個應該鏈接在這個選項上的其他值。是否有捷徑可尋?select元素應該返回2個值

<select id="category" name="data[cat]"> 
<option value="12" label="0">A</option> 
<option value="7" label="0">B</option> 
</select> 

我試圖進入第二值轉換爲標籤屬性要做到這一點,但隨後的問題是,我不知道正確的方式來獲得所選擇的選項的標籤值。 這是用jQuery編寫的。

要獲得所選擇的選項我使用:

$("#category").livequery('change', function() {    
     var catId = ($(this)[0].value); 
}); 

這個偉大的工程,但我只是不知道如何讓所選擇的選項的標籤值。 或者也許更好的方法來解決這個問題。

回答

4

label屬性被某些瀏覽器用來顯示該選項的內容,因此您的列表框可能會顯示兩個0選項。

一個更好的解決方案可能是做到以下幾點:

<select id="category" name="data[cat]"> 
    <option value="12,0">A</option> 
    <option value="7,0">B</option> 
</select> 

,並在事件處理程序拆分值,例如

$("#category").livequery('change', function() {    
    var values = ($(this)[0].value).split(","); 
    var catId = values[0]; 
    var otherId = values[1]; 
}); 
4

之一方法是設置選項的值作爲JSON字符串等

<select id="category" name="data[cat]"> 
    <option value="{value1:10, value2:20}" label="0">A</option> 
    <option value="{value1:30, value2:40}" label="0">B</option> 
</select> 

,然後解析該值作爲JSON對象。一旦你得到了JSON對象,那麼你可以從相同的角度提取單獨的值。通過這種方式,您可以根據需要添加儘可能多的值。