Jquery 数据表中的自定义筛选器地址和日期范围

Jquery 数据表中的自定义筛选器地址和日期范围,jquery,filter,datatables,Jquery,Filter,Datatables,我正在尝试使用自定义筛选器筛选数据表,这些筛选器是日期范围、半径和位置 我需要从表中计算输入位置到每个站点列位置之间的半径,该半径应与输入的半径匹配,然后显示结果 日期范围应从表中筛选日期列。 radius和postcode应从表中筛选站点列 但是我的函数没有得到任何回报,我不知道哪里出了错 Html代码: <table class="transport-search"> <tbody> <tr> <td style="padd

我正在尝试使用自定义筛选器筛选数据表,这些筛选器是
日期范围
半径
位置

我需要从表中计算输入位置到每个
站点
列位置之间的半径,该半径应与输入的半径匹配,然后显示结果

日期范围
应从表中筛选
日期列
radius
postcode
应从表中筛选
站点列

但是我的函数没有得到任何回报,我不知道哪里出了错

Html代码:

 <table class="transport-search">
  <tbody>
    <tr>
      <td style="padding: 10px !important"><input name="min" id="min" type="text" class="form-control date" placeholder="Min Date"></td>

      <td style="padding: 10px !important"> <input name="max" id="max" type="text" class="form-control date" placeholder="Max Date"></td>

      <td style="padding: 10px !important"> <input type="text" class="form-control" id="radius" placeholder="Radius"></td>

      <td style="padding: 10px !important"> <input type="text" class="form-control" id="postcode" placeholder="Address/Postcode"></td>

    </tr>
  </tbody>
</table>
<table class="table-striped table table-bordered table-condensed transport">
  <thead>
    <tr role="row">
      <th width="4%">JobID</th>
      <th width="8%">Customer</th>
      <th width="11%">Site</th>
      <th width="8%">Site Contact</th>
      <th width="8%">Direction</th>
      <th width="8%">Dates</th>
    </tr>
  </thead>
  <tbody>
    <tr role="row" class="odd">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> CN52
        </p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1281 </p>
        <p class="no-margins">BDS Yorkshire Limited</p>
      </td>
      <td>
        <p class="no-margins"> Hilderthorpe Road </p>
        <p class="no-margins"> </p>
        <p class="no-margins"> </p>
        <p class="no-margins">Bridlington </p>
        <p class="no-margins"> East Yorkshire </p>
        <p class="no-margins"> YO15 3AZ </p>
      </td>
      <td>
        <p class="no-margins">Jane Mason </p>
        <p class="no-margins">jaynem@bdsyorkshire.com </p>
        <p class="no-margins">01377 240403 </p>
      </td>
      <td>Collection</td>
      <td>
        02/02/2018
      </td>
    </tr>
    <tr role="row" class="even">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> CN52
        </p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1281 </p>
        <p class="no-margins">BDS Yorkshire Limited</p>
      </td>
      <td>
        <p class="no-margins"> Hilderthorpe Road </p>
        <p class="no-margins"> </p>
        <p class="no-margins"> </p>
        <p class="no-margins">Bridlington </p>
        <p class="no-margins"> East Yorkshire </p>
        <p class="no-margins"> YO15 3AZ </p>
      </td>
      <td>
        <p class="no-margins">Jane Mason </p>
        <p class="no-margins">jaynem@bdsyorkshire.com </p>
        <p class="no-margins">01377 240403 </p>
      </td>
      <td>Collection</td>
      <td>
        02/02/2018
      </td>
    </tr>
    <tr role="row" class="odd">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> CN52
        </p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1281 </p>
        <p class="no-margins">BDS Yorkshire Limited</p>
      </td>
      <td>
        <p class="no-margins"> Hilderthorpe Road </p>
        <p class="no-margins"> </p>
        <p class="no-margins"> </p>
        <p class="no-margins">Bridlington </p>
        <p class="no-margins"> East Yorkshire </p>
        <p class="no-margins"> YO15 3AZ </p>
      </td>
      <td>
        <p class="no-margins">Jane Mason </p>
        <p class="no-margins">jaynem@bdsyorkshire.com </p>
        <p class="no-margins">01377 240403 </p>
      </td>
      <td>Delivery</td>
      <td>
        02/02/2018
      </td>
    </tr>
    <tr role="row" class="even">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> CN52
        </p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1281 </p>
        <p class="no-margins">BDS Yorkshire Limited</p>
      </td>
      <td>
        <p class="no-margins"> Hilderthorpe Road </p>
        <p class="no-margins"> </p>
        <p class="no-margins"> </p>
        <p class="no-margins">Bridlington </p>
        <p class="no-margins"> East Yorkshire </p>
        <p class="no-margins"> YO15 3AZ </p>
      </td>
      <td>
        <p class="no-margins">Jane Mason </p>
        <p class="no-margins">jaynem@bdsyorkshire.com </p>
        <p class="no-margins">01377 240403 </p>
      </td>
      <td>Delivery</td>
      <td>
        02/02/2018
      </td>
    </tr>
    <tr role="row" class="odd">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> CN63</p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1249 </p>
        <p class="no-margins">Windser Road Surfacing</p>
      </td>
      <td>
        <p class="no-margins">Etton Road</p>
        <p class="no-margins">Cherry Burton</p>
        <p class="no-margins"></p>
        <p class="no-margins">Beverley</p>
        <p class="no-margins"></p>
        <p class="no-margins">HU17 7RP</p>
      </td>
      <td>
        <p class="no-margins">Gordon Blair</p>
        <p class="no-margins"></p>
        <p class="no-margins"></p>
      </td>
      <td>Collection</td>
      <td>
        27/04/2018
      </td>
    </tr>
    <tr role="row" class="even">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> CN63</p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1249 </p>
        <p class="no-margins">Windser Road Surfacing</p>
      </td>
      <td>
        <p class="no-margins">Etton Road</p>
        <p class="no-margins">Cherry Burton</p>
        <p class="no-margins"></p>
        <p class="no-margins">Beverley</p>
        <p class="no-margins"></p>
        <p class="no-margins">HU17 7RP</p>
      </td>
      <td>
        <p class="no-margins">Gordon Blair</p>
        <p class="no-margins"></p>
        <p class="no-margins"></p>
      </td>
      <td>Delivery</td>
      <td>
        27/04/2018
      </td>
    </tr>
    <tr role="row" class="odd">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> H56</p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1177 </p>
        <p class="no-margins">Toppesfield Limited</p>
      </td>
      <td>
        <p class="no-margins">Three Sisters </p>
        <p class="no-margins">Three Sisters Race Track </p>
        <p class="no-margins">Three Sisters Road </p>
        <p class="no-margins">Ashton in Makerfield </p>
        <p class="no-margins">Wigan </p>
        <p class="no-margins">WN4 8DD </p>
      </td>
      <td>
        <p class="no-margins">Craig Germeney </p>
        <p class="no-margins">craig.germeney@toppesfield.com </p>
        <p class="no-margins">07773 257824 </p>
      </td>
      <td>Collection</td>
      <td>
        01/04/2018
      </td>
    </tr>
    <tr role="row" class="even">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> H56</p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1177 </p>
        <p class="no-margins">Toppesfield Limited</p>
      </td>
      <td>
        <p class="no-margins">Three Sisters </p>
        <p class="no-margins">Three Sisters Race Track </p>
        <p class="no-margins">Three Sisters Road </p>
        <p class="no-margins">Ashton in Makerfield </p>
        <p class="no-margins">Wigan </p>
        <p class="no-margins">WN4 8DD </p>
      </td>
      <td>
        <p class="no-margins">Craig Germeney </p>
        <p class="no-margins">craig.germeney@toppesfield.com </p>
        <p class="no-margins">07773 257824 </p>
      </td>
      <td>Collection</td>
      <td>
        01/04/2018
      </td>
    </tr>
    <tr role="row" class="odd">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> H56</p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1177 </p>
        <p class="no-margins">Toppesfield Limited</p>
      </td>
      <td>
        <p class="no-margins">Three Sisters </p>
        <p class="no-margins">Three Sisters Race Track </p>
        <p class="no-margins">Three Sisters Road </p>
        <p class="no-margins">Ashton in Makerfield </p>
        <p class="no-margins">Wigan </p>
        <p class="no-margins">WN4 8DD </p>
      </td>
      <td>
        <p class="no-margins">Craig Germeney </p>
        <p class="no-margins">craig.germeney@toppesfield.com </p>
        <p class="no-margins">07773 257824 </p>
      </td>
      <td>Collection</td>
      <td>
        01/04/2018
      </td>
    </tr>
    <tr role="row" class="even">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> H56</p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1177 </p>
        <p class="no-margins">Toppesfield Limited</p>
      </td>
      <td>
        <p class="no-margins">Three Sisters </p>
        <p class="no-margins">Three Sisters Race Track </p>
        <p class="no-margins">Three Sisters Road </p>
        <p class="no-margins">Ashton in Makerfield </p>
        <p class="no-margins">Wigan </p>
        <p class="no-margins">WN4 8DD </p>
      </td>
      <td>
        <p class="no-margins">Craig Germeney </p>
        <p class="no-margins">craig.germeney@toppesfield.com </p>
        <p class="no-margins">07773 257824 </p>
      </td>
      <td>Collection</td>
      <td>
        01/04/2018
      </td>
    </tr>
    <tr role="row" class="odd">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> H56
        </p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1177 </p>
        <p class="no-margins">Toppesfield Limited</p>
      </td>
      <td>
        <p class="no-margins">Three Sisters </p>
        <p class="no-margins">Three Sisters Race Track </p>
        <p class="no-margins">Three Sisters Road </p>
        <p class="no-margins">Ashton in Makerfield </p>
        <p class="no-margins">Wigan </p>
        <p class="no-margins">WN4 8DD </p>
      </td>
      <td>
        <p class="no-margins">Craig Germeney </p>
        <p class="no-margins">craig.germeney@toppesfield.com </p>
        <p class="no-margins">07773 257824 </p>
      </td>
      <td>Delivery</td>
      <td>
        29/03/2018
      </td>
    </tr>
    <tr role="row" class="even">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> H56
        </p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1177 </p>
        <p class="no-margins">Toppesfield Limited</p>
      </td>
      <td>
        <p class="no-margins">Three Sisters </p>
        <p class="no-margins">Three Sisters Race Track </p>
        <p class="no-margins">Three Sisters Road </p>
        <p class="no-margins">Ashton in Makerfield </p>
        <p class="no-margins">Wigan </p>
        <p class="no-margins">WN4 8DD </p>
      </td>
      <td>
        <p class="no-margins">Craig Germeney </p>
        <p class="no-margins">craig.germeney@toppesfield.com </p>
        <p class="no-margins">07773 257824 </p>
      </td>
      <td>Delivery</td>
      <td>
        29/03/2018
      </td>
    </tr>
    <tr role="row" class="odd">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> H56</p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1177 </p>
        <p class="no-margins">Toppesfield Limited</p>
      </td>
      <td>
        <p class="no-margins">Three Sisters </p>
        <p class="no-margins">Three Sisters Race Track </p>
        <p class="no-margins">Three Sisters Road </p>
        <p class="no-margins">Ashton in Makerfield </p>
        <p class="no-margins">Wigan </p>
        <p class="no-margins">WN4 8DD </p>
      </td>
      <td>
        <p class="no-margins">Craig Germeney </p>
        <p class="no-margins">craig.germeney@toppesfield.com </p>
        <p class="no-margins">07773 257824 </p>
      </td>
      <td>Delivery</td>
      <td>
        29/03/2018
      </td>
    </tr>
    <tr role="row" class="even">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> H56</p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1177 </p>
        <p class="no-margins">Toppesfield Limited</p>
      </td>
      <td>
        <p class="no-margins">Three Sisters </p>
        <p class="no-margins">Three Sisters Race Track </p>
        <p class="no-margins">Three Sisters Road </p>
        <p class="no-margins">Ashton in Makerfield </p>
        <p class="no-margins">Wigan </p>
        <p class="no-margins">WN4 8DD </p>
      </td>
      <td>
        <p class="no-margins">Craig Germeney </p>
        <p class="no-margins">craig.germeney@toppesfield.com </p>
        <p class="no-margins">07773 257824 </p>
      </td>
      <td>Delivery</td>
      <td>
        29/03/2018
      </td>
    </tr>
    <tr role="row" class="odd">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> CN62</p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1114 </p>
        <p class="no-margins">NMC Surfacing</p>
      </td>
      <td>
        <p class="no-margins">Kimberley Caravans</p>
        <p class="no-margins">Burtree Lane</p>
        <p class="no-margins"></p>
        <p class="no-margins">Darlington</p>
        <p class="no-margins"></p>
        <p class="no-margins">DL2 2XZ</p>
      </td>
      <td>
        <p class="no-margins">Elaine Sheppard</p>
        <p class="no-margins">elaine.sheppard@nmcsurfacing.co.uk</p>
        <p class="no-margins">01302 275131</p>
      </td>
      <td>Collection</td>
      <td>
        27/04/2018
      </td>
    </tr>
    <tr role="row" class="even">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> CN62</p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1114 </p>
        <p class="no-margins">NMC Surfacing</p>
      </td>
      <td>
        <p class="no-margins">Kimberley Caravans</p>
        <p class="no-margins">Burtree Lane</p>
        <p class="no-margins"></p>
        <p class="no-margins">Darlington</p>
        <p class="no-margins"></p>
        <p class="no-margins">DL2 2XZ</p>
      </td>
      <td>
        <p class="no-margins">Elaine Sheppard</p>
        <p class="no-margins">elaine.sheppard@nmcsurfacing.co.uk</p>
        <p class="no-margins">01302 275131</p>
      </td>
      <td>Delivery</td>
      <td>
        27/04/2018
      </td>
    </tr>
    <tr role="row" class="odd">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> CN69</p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1094 </p>
        <p class="no-margins">C R MacDonald Ltd</p>
      </td>
      <td>
        <p class="no-margins">Hewell Road</p>
        <p class="no-margins"></p>
        <p class="no-margins"></p>
        <p class="no-margins">Redditch</p>
        <p class="no-margins"></p>
        <p class="no-margins">B97 6AE</p>
      </td>
      <td>
        <p class="no-margins">Michael Siverns </p>
        <p class="no-margins">michael.siverns@crmacdonald.co.uk </p>
        <p class="no-margins"></p>
      </td>
      <td>Collection</td>
      <td>
        27/04/2018
      </td>
    </tr>
    <tr role="row" class="even">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> CN69</p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1094 </p>
        <p class="no-margins">C R MacDonald Ltd</p>
      </td>
      <td>
        <p class="no-margins">Hewell Road</p>
        <p class="no-margins"></p>
        <p class="no-margins"></p>
        <p class="no-margins">Redditch</p>
        <p class="no-margins"></p>
        <p class="no-margins">B97 6AE</p>
      </td>
      <td>
        <p class="no-margins">Michael Siverns </p>
        <p class="no-margins">michael.siverns@crmacdonald.co.uk </p>
        <p class="no-margins"></p>
      </td>
      <td>Collection</td>
      <td>
        27/04/2018
      </td>
    </tr>
    <tr role="row" class="odd">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> CN69</p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1094 </p>
        <p class="no-margins">C R MacDonald Ltd</p>
      </td>
      <td>
        <p class="no-margins">Hewell Road</p>
        <p class="no-margins"></p>
        <p class="no-margins"></p>
        <p class="no-margins">Redditch</p>
        <p class="no-margins"></p>
        <p class="no-margins">B97 6AE</p>
      </td>
      <td>
        <p class="no-margins">Michael Siverns </p>
        <p class="no-margins">michael.siverns@crmacdonald.co.uk </p>
        <p class="no-margins"></p>
      </td>
      <td>Collection</td>
      <td>
        27/04/2018
      </td>
    </tr>
    <tr role="row" class="even">
      <td style="text-align: center;vertical-align: middle;">
        <p class="no-margins"> CN69</p>
      </td>
      <td class="sorting_1">
        <p class="no-margins">1094 </p>
        <p class="no-margins">C R MacDonald Ltd</p>
      </td>
      <td>
        <p class="no-margins">Hewell Road</p>
        <p class="no-margins"></p>
        <p class="no-margins"></p>
        <p class="no-margins">Redditch</p>
        <p class="no-margins"></p>
        <p class="no-margins">B97 6AE</p>
      </td>
      <td>
        <p class="no-margins">Michael Siverns </p>
        <p class="no-margins">michael.siverns@crmacdonald.co.uk </p>
        <p class="no-margins"></p>
      </td>
      <td>Collection</td>
      <td>
        27/04/2018
      </td>
    </tr>
  </tbody>
</table>

若比德
顾客
场地
现场联系
方向
日期

CN52

1281

BDS约克郡有限公司

希尔德索普路

Bridlington

东约克郡

YO15 3AZ

简·梅森

jaynem@bdsyorkshire.com

0137240403

收集 02/02/2018

CN52

1281

BDS约克郡有限公司

希尔德索普路

Bridlington

东约克郡

YO15 3AZ

简·梅森

jaynem@bdsyorkshire.com

0137240403

收集 02/02/2018

CN52

1281

BDS约克郡有限公司

希尔德索普路

Bridlington

东约克郡

YO15 3AZ

简·梅森

jaynem@bdsyorkshire.com

0137240403

传送 02/02/2018

CN52

1281

BDS约克郡有限公司

希尔德索普路

Bridlington

东约克郡

YO15 3AZ

简·梅森

jaynem@bdsyorkshire.com

0137240403

传送 02/02/2018

CN63

1249

温莎路面

埃顿路

樱桃伯顿

贝弗利

HU17 7RP

戈登·布莱尔

收集 27/04/2018

CN63

1249

温莎路面

埃顿路

樱桃伯顿

贝弗利

HU17 7RP

戈登·布莱尔

传送 27/04/2018

H56

1177

Toppesfield有限公司

三姐妹

三姐妹赛道

三姐妹路

马克菲尔德的阿什顿

维根

WN4 8DD

Craig Germeney

克雷格。germeney@toppesfield.com

07773 257824

收集 01/04/2018

H56

1177

Toppesfield有限公司

三姐妹

三姐妹赛道

三姐妹路

马克菲尔德的阿什顿

维根

WN4 8DD

$(document).ready(function() {

  $('input.date').datepicker({
    format: "dd/mm/yyyy",
    changeMonth: true,
    changeYear: true,
    autoclose: true
  });

  var table = $('.transport').DataTable();


  $("#min").datepicker({
    onSelect: function() {
      table.draw();
    }
  });

  $("#max").datepicker({
    onSelect: function() {
      table.draw();
    }
  });

  $('#min, #max').on('keyup', function() {

    table.draw();

  });

  $('#postcode, #radius').on('keyup', function() {

    table.draw();
  });

  $.fn.dataTable.ext.search.push(function(settings, data, dataIndex) {

    // min and max dates matching
    var dateStart = $('#min').datepicker("getDate");
    var dateEnd = $('#max').datepicker("getDate");
    var evalDate = new Date(data[5]);

    if (evalDate >= dateStart && evalDate <= dateEnd) {
      return true;
    } else {
      return false;
    }

    var source = $("#postcode").val();
    var radius = $("#radius").val();

    table.columns().eq(2).each(function(index) {
      var column = table.column(index);

      var destination = column.data();

      distanceCalc(source, destination).then(calcs => {

        if (radius == calcs) {
          return true;
        } else {
          return false;
        }

      }).catch(err => {
        return false;
      })

    });



  });

});

function distanceCalc(source, destination) {
  return new Promise((resolve, reject) => {
    var values = [];
    var directionsService = new google.maps.DirectionsService();
    //*********DIRECTIONS AND ROUTE**********************//
    var request = {
      origin: source,
      destination: destination,
      travelMode: google.maps.TravelMode.DRIVING
    };
    directionsService.route(request, function(response, status) {
      if (status == google.maps.DirectionsStatus.OK) {
        // directionsDisplay.setDirections(response);
      }
    });
    //*********DISTANCE AND DURATION**********************//
    var service = new google.maps.DistanceMatrixService();
    service.getDistanceMatrix({
      origins: [source],
      destinations: [destination],
      travelMode: google.maps.TravelMode.DRIVING,
      unitSystem: google.maps.UnitSystem.IMPERIAL,
      avoidHighways: false,
      avoidTolls: false
    }, function(response, status) {
      if (status == google.maps.DistanceMatrixStatus.OK && response.rows[0].elements[0].status != "ZERO_RESULTS") {
        var distance = response.rows[0].elements[0].distance.text;

        if (distance) {
          resolve(distance);
        } else {
          reject("Lat&Long required as address does not validate");
        }
      } else {
        reject("Lat&Long required as address does not validate");
      }
    });
  })
}