我有一个多选:
<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"]
});
一切正常。
我知道初学者会犯一些愚蠢的错误,但要事先感谢每一个帮助。
答案 0 :(得分:1)
问题是因为courierfilter
属性需要一个数组,但是你要为它提供一个格式化为数组的字符串。另请注意,通过使用map()
方法可以使数组生成更简单。试试这个:
$(".selectpicker").change(function() {
var items = $('.courierpicker option:selected').map(function(){
return this.value;
}).get();
$('#data-table').bootstrapTable('filterBy', {
courierfilter: items
});
});
答案 1 :(得分:1)
只需使用{courierfilter: items}
。