2017-06-19 8 views
0

選択ボックスを使用してDataTableの給与をフィルタリングしようとしていますが、間違っていることがわかりません。ここでDataTableを使用してセレクトボックスの給与範囲をフィルタリングする

は、選択ボックスです:

<select class="custom-select w-100" name="salary" id="salary"> 
<option value="" selected="selected">Any salary</option> 
<option value="18000">£18,000 and below</option> 
<option value="28000">£28,000 and below </option> 
<option value="32000">£32,000 and below</option> 
<option value="40000">£40,000 and above</option> 
</select> 

そして、ここでは、クエリです:

$.fn.dataTable.ext.search.push(function (settings, data, dataIndex) { 
     var salary = parseFloat(data[2].replace(",","")) || 0; 
     return salary <= parseInt($('#salary').val()) 
     }); 

$('#salary').on('change', function (data) { 
     table.draw(); 
     }); 

ここでは、テーブルの画像です:enter image description here

は、私は基本的に間違ってやっている人を知っています?私は

答えて

1

はこれを試して...それは明らかに何かを想像:あなたはあまりにもコンマ

$.fn.dataTable.ext.search.push(function (settings, data, dataIndex) { 
     var salary = data[2].replace(",",""); 
      salary = salary.replace("£",""); 
      salary = parseFloat(salary) || 0; 
     var selectedText = $('#salary option:selected').text(); 
     if(selectedText.indexOf('excellent')!=-1) { 
     return false; 
     } else if(selectedText.indexOf('above')!=-1) { 
     return salary > parseInt($('#salary').val()); 
     } else { 
     return salary <= parseInt($('#salary').val()); 
     } 
}); 
+0

と一緒にシャープ記号を交換する必要がある「*£40,000 *上記の」とどうなりますか...?また、正規表現ではそれほど簡単ではないでしょうか? – davidkonrad

+0

私のポストは更新されましたが、それでもまだ完璧な回答ではありません –

+0

@BhushanKawadkarありがとう!それは治療に効果があった。 「優秀」などのテキストデータを含む行を除外することは可能でしょうか? – mckeever02

関連する問題