2014-12-03 83 views
0

我有幾個同類的選擇框。但是,當我使用jQuery數組推式方法將該類中的所有選定值作爲數組獲取時,它只是在每個值之前添加逗號(,)。 它工作與靜態值的翅片。問題是當我從PHP數組中添加值到選擇框時。 這是我的選擇框代碼的樣子jQuery push數組插入逗號

<select name="add_purch_item1" class="add_purch_item"> 
    <option value="">----select----</option> 
    <?php if(!empty($pro_list1)) { foreach($pro_list1 as $products) { ?> 
     <option value="<?php echo $products->sku; ?>"><?php echo $products->product_name; ?></option> 
    <?php } } ?> 
</select> 

<select name="add_purch_item2" class="add_purch_item"> 
    <option value="">----select----</option> 
    <?php if(!empty($pro_list2)) { foreach($pro_list2 as $products) { ?> 
     <option value="<?php echo $products->sku; ?>"><?php echo $products->product_name; ?></option> 
    <?php } } ?> 
</select> 

而且我添加了一個點擊功能按鈕。點擊時,它會將所有選定的值作爲數組。這裏是我的jQuery代碼,

var selected = []; 

    $('.add_purch_item').each(function() { 
     selected.push($(this).val()); 
    }); 

    alert(selected); 

而當我嘗試使用靜態值選擇框時,它會給出正確的輸出。 See here an example

我在動態值中得到這個錯誤的輸出。那個不需要的逗號是我的問題。如何避免這種情況?我也嘗試過字符串替換。 Wrong Output

+0

能否請您發表您的全部代碼。一個小提琴的工作對診斷問題並沒有什麼幫助。 – 2014-12-03 08:55:11

+0

我能看到的唯一原因是可能有一個空值 – 2014-12-03 08:56:51

+0

您的完整代碼是什麼意思?哪些代碼? – 2014-12-03 08:58:08

回答

4

這是因爲空白值也被插入。在插入之前,您需要檢查選定的值不是空白。

$('.add_purch_item').each(function() { 
    var val = $(this).val(); 
    if (val) { 
     selected.push(val); 
    } 
}); 

See updated fiddle.

+0

非常感謝@Hiral – 2014-12-03 09:08:55

+0

@Corner歡迎:) – Hiral 2014-12-03 09:09:46

1

它發生,你必須選擇空白元素(沒有選擇的值)。所以當你創建數組時,忽略選擇沒有值的元素。

$(document).on("click", '#submit', function() { 
 
    var selected = []; 
 

 
    var selected = $('.add_purch_item').map(function() { 
 
    return $(this).val() || undefined; 
 
    }).get(); 
 

 
    alert(selected); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<select name="name1" class="add_purch_item"> 
 
    <option value="" selected="selected">-----</option> 
 
    <option value="1">value1</option> 
 
    <option value="2">value2</option> 
 
</select> 
 

 
<select name="name2" class="add_purch_item"> 
 
    <option value="" selected="selected">-----</option> 
 
    <option value="1">value1</option> 
 
    <option value="2">value2</option> 
 
</select> 
 
<button id="submit">Check</button>

+0

感謝您的幫助! – 2014-12-03 09:09:44