2016-05-24 26 views
0

參數我有多個選擇:的jQuery - 變量的函數

<select name="courier" class="selectpicker courierpicker" multiple> 
    <option value="value1">Value1</option> 
    <option value="value2">Value2</option> 
    ... 
</select> 

我想用所選選項參數在我的表過濾行。這個代碼不爲我工作(假定,只是在這個例子中,總有不止一個選擇的選項):

$(".selectpicker").change(function() { 
    var items = []; 
    $('.courierpicker option:selected').each(function(){ 
     items.push($(this).val()); 
    }); 
    var $result = '["' + items.join('","') + '"]'; 
    $('#data-table').bootstrapTable('filterBy', { 
     courierfilter: $result 
    }); 
}); 

當我觸發:

$('#data-table').bootstrapTable('filterBy', { 
    courierfilter: ["value1","value2"] 
}); 

一切工作就好了。

我知道這將是一些初學者的一個愚蠢的錯誤,但提前感謝每一個幫助。

回答

1

問題是因爲courierfilter屬性需要一個數組,但是您提供了一個格式與數組類似的字符串。還要注意,通過使用map()方法可以使數組生成變得更簡單。試試這個:

$(".selectpicker").change(function() { 
    var items = $('.courierpicker option:selected').map(function(){ 
     return this.value; 
    }).get(); 
    $('#data-table').bootstrapTable('filterBy', {  
     courierfilter: items 
    }); 
}); 
+0

非常感謝你的踢球和工作代碼:) –

1

只是使用{courierfilter: items}