2011-01-20 99 views
1

我有一個多選select元素的日期列表,我需要將選定的日期列表發送到服務器進行處理。
jQuery將繼續增加內存和CPU使用率,我不明白,因爲單獨運行乾草部分是好的。發送列表:從多個可選擇的選擇通過getJSON

HTML 
<select id="my-dates" name="my-dates[]" multiple="multiple" size="5"> 
    <option>2011-01-18</option> 
    <option>2011-01-20</option> 
    <option>2011-01-21</option> 
    <option>2011-01-27</option> 
</select> 

jQuery 
$.getJSON('dates_handling.php',{ 
dates: $('select#my-dates').find(':selected'), 
other:stuff 
},function(result){ 
    // result handling 
}); 
data key 'dates' should contain an transmit-able array like ['2011-01-20',2011-01-27'] 

jQuery haywire part 
$('select#my-dates').find(':selected') 

回答

1

我手動構建日期數組,因爲你逝去的全jQuery的對象:

var selectedDates = []; 

$('select#my-dates > option:selected').each(function() { 
    selectedDates.push($(this).html()); 
}); 

$.getJSON('dates_handling.php',{ 
dates: selectedDates, 
other:stuff 
},function(result){ 
    // result handling 
}); 
+0

這很有效。我使用.map()而不是.each()。 – Kim 2011-01-20 11:57:23

0

您還可以使用:

$('#my-dates').val() 

它返回選定爲數組中的值。