2013-11-25 153 views
-1

「這個」選擇的選項值我使用每個和grep嘗試,但我不認爲這是在這種情況下需要合適的事件返回從陣列

這是我已經開始與:

var $children = $("select[name^='children'] option:selected") 
    .map(function() { 
     return $(this).val(); 
    }).get(); 

它返回:[ 「1」, 「」, 「」, 「」, 「1」, 「1」, 「1」]

$("#room").on("change", $children, function(){ 
    alert($(this).val()); 
}); 

這在控制檯返回空白(即,空白白線),我很困惑這是什麼。

編輯:

及其在容器3個字段和容器中的一個可以由用戶高達4次克隆。這只是一個領域,即有問題的領域。

我bascially只是想返回一個數字。

HTML:

<select name="children1" id="children1"> 
    <option value="0">0</option> 
    <option value="1">1</option> 
    <option value="2">2</option> 
</select> 
+1

什麼是HTML的樣子,和你有什麼確切地返回? – adeneo

+0

所以現在你有三個選擇,每個最多有四個克隆,並且假設它們全都具有相同的名稱和ID(< - 無效),你試圖從中獲得哪個值? – adeneo

+0

http://jsfiddle.net/v5y4V/你可以更新小提琴來說明問題 – megawac

回答

0

這將給選定的選項

$('select[name^="children"] option:selected').text(); 
0

嘗試

var selected = $("select[name^='children']") 
    .map(function() { 
    return this.value.length ? this.value : undefined; 
}).get(); 

演示:Fiddle

0

這聽起來像你想獲得掇下值由用戶選擇。爲此,無論何時選擇一個值,都需要將一個change事件處理程序附加到下拉列表中。

例子:

$("select[name^='children']").change(function() { 
    var selectedValue = $(this).val(); 
    alert(selectedValue); 
}); 

這應該與多個下拉菜單正常工作。請參閱fiddle

注:

您還可以使用.text()在這種情況下,但我們建議您使用.val(),因爲這適用於所有投入要素,而.text()有時可以給你不正確的結果,因爲它返回複合文字匹配元素的內容及其後代。

1

任何時候用戶點擊任何一個子字段,然後我想要一些 代碼運行。

我會認爲,這意味着,任何時候的選擇變化值,得到它的價值,因爲它們是克隆的,我會認爲他們是動態插入:

$(document).on('change', 'select[name^="children"]', function() { 
    console.log(this.value); 
}); 
0

看看在這裏:

CODE

$(document).on("change", "select", function(){ 
    alert($(this).val() + " - " + $(this).attr("id")); 
}); 

這將觸發警報前夕您可以選擇一個選項,即使在新的「克隆」選擇中。見搗鼓工作示例:

小提琴http://jsfiddle.net/nndKx/1/