2017-06-19 63 views
0

我試圖使用選擇框過濾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