2016-05-24 13 views
0

のパラメータとして、私は、複数の選択があります。jqueryの - 変数、関数

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

は私が私のテーブルの行をフィルタリングするためのパラメータとして選択したオプションを使用します。このコードは(常に複数の選択されたオプションがあることを、ちょうどこの例では、想定する)私のために動作しません:

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

すべてがうまく動作します:私はトリガー

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

初心者の馬鹿げたミスであることは知っていますが、事前にお手伝いをしていただきありがとうございます。

答えて

1

この問題は、プロパティに配列が必要ですが、配列のように書式設定された文字列を提供しているためです。また、配列の生成は、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}を使用してください。