1

multi select fieldjquery datatable(http://datatables.net )の1つの列にhtmlがあり、(デフォルトの検索ボックスから)選択したフィールドで選択したオプションのみを検索し、選択していないオプションは検索しません。現在、選択フィールド内のすべてのテキストを検索しています。

必要なのは、選択されていないオプションを検索から削除することです。

誰かがそれを行う方法を提案できますか?
ありがとう。

編集:カスタムを作成sTypeして定義$.fn.dataTableExt.ofnSearchしました。「タイプベースの列フィルタリング」の-( http://datatables.net/development/filtering )で指定されているとおり。コードを以下に示します:-

$.fn.dataTableExt.aTypes.push(
    function ( sData )
    {
        var ishtml=sData.match(/<select(?:.)*?>.*<\/select>/gm);


        if (ishtml)
        {
            return 'comments';
        }
        return null;
    }
);

$.fn.dataTableExt.ofnSearch['comments'] = function ( sData ) {
   return sData.replace(/<select(?:.)*?>.*<\/select>/gm, "");
}

そしてstype、.dataTable({})のcolumndefに追加されました

"aoColumnDefs": [{ "sType": "comments", "aTargets": [ 8 ] }],

完全な選択要素テキスト(選択されたものと選択されていないものの両方)が検索から削除されます。次に、jqueryを使用して、選択したオプションをselectの外部の非表示のdivに追加し、検索で使用できるようにします。しかし、これはまだ検索でフィールドテキストを選択することを検討しています。

何か案は?誰か助けてくれる人がいたら教えてください。

4

1 に答える 1

1

fnFilterを使用して、チェックボックスにチェックされた用語が含まれているかどうかを検索できます。fnFilterの使用方法は次のとおりです。jQueryDataTables-完全一致で列をフィルタリング

oTable.fnFilter( "^" + TERM + "$"、COLUMN、true); //用語、列番号、正規表現フィルター

したがって、テーブルで次のようにフィルタリングできます。

//all unchecked boxes
table.fnFilter('^((?!checked).)*$', COLUMN, true);    
//all checked boxes       
table.fnFilter('checked', COLUMN, true);

(COLUMNはチェックボックスが;)の列用です)、trueは正規表現検索を有効にするためのものです(ここでは正規表現を使用していないため、チェックされていないボックスの検索、チェックされたボックスのオプションに対して有効にする必要があります)。

PS:私は非認定者ですが、これが最善の方法ですが、間違いなく機能します

于 2013-01-09T13:27:25.550 に答える