title: jQuery DataTable column filters with delay search until 3+ characters or enter key
body: <p>I'm try to achieve that, but so far not working. Tried those suggestion either in stackoverflow or datatables forum so far no luck yet. I tried the fnSetFilteringEnterPress of <a href="https://stackoverflow.com/questions/5548893/jquery-datatables-delay-search-until-3-characters-been-typed-or-a-button-clicke">jQuery DataTables: Delay search until 3 characters been typed OR a button clicked</a> but so far can't make it work, any suggestion. Any advise would be appreciate. Thanks</p>
  
  <pre><code>var oTable;
  var ws_GetData = 'Default.aspx/GetList';
  $(document).ready(function () {
  oTable = $('#tbl1').dataTable({
      "bJQueryUI": true,
      "bPaginate": true,
      "sPaginationType": "full_numbers",
      "iDisplayLength": 25,
      "bProcessing": true,
      "bFilter": true,
      "bServerSide": true,
      "aoColumns": [{ "sWidth": "5%", "bSortable": false }, 
                    { "sWidth": "3%", "bSortable": false }, 
                    { "sWidth": "5%", "bSortable": false },
                    { "bSortable": false }, { "bSortable": false }, 
                    { "bSortable": false }, { "bSortable": false },
                    { "sWidth": "5%", "bSortable": false }, 
                    { "sWidth": "2%", "bSortable": false}],
      "sAjaxSource": ws_GetData,
      "fnServerData": function (sSource, aoData, fnCallback, oSettings) {
          var page = Math.ceil(oSettings._iDisplayStart / oSettings._iDisplayLength) + 1;
          aoData.push({ "name": "pageNo_1", "value": page });
          ResultData(sSource, aoData, fnCallback);
          }
      }).columnFilter({ //sPlaceHolder: "head:before",
      aoColumns: [{ "sWidth": "5%", type: "text" },
                      { "sWidth": "3%", type: "select", values: ['00', '02'] },
                      { "sWidth": "5%", type: "text" },
                      { type: "date-range" },
                      { type: "text" },
                      { type: "text" },
                      { type: "number-range" },
                      { "sWidth": "5%", type: "text"}]
      });
  }); 
  
  function ResultData(sSource, aoData, fnCallback) {
      $.ajax({
          type: "GET",
          url: sSource,
          contentType: "application/json; charset=utf-8",
          dataType: "json",
          data: aoData,
          async: true,
          beforeSend: function () {
              // SHOW the overlay:
              $('#overlay').show();
          },
          complete: function () {
              // HIDE the overlay:
              $('#overlay').hide();
          },
          success: function (result) {
              var myObject = JSON.parse(result.d);
              fnCallback(myObject);
          },
          error: function (errMsg) {
              alert(errMsg);
          }
      });
  }
  </code></pre>