在搜索文本框中输入日期值时如何避免 ajax 错误?

Posted

技术标签:

【中文标题】在搜索文本框中输入日期值时如何避免 ajax 错误?【英文标题】:How to avoid ajax error while typing a date value in search textbox? 【发布时间】:2019-08-08 16:33:11 【问题描述】:

我有一个日期搜索功能,可以立即输入完整的日期输入,例如:('10/30/2019'),但如果我输入它,例如:('10/'),它会抛出一个 ajax错误(附截图)。

我的 bal.js 文件:

$(document).ready(function() 
  $("table[role='bal_datatable']").each(function() 
    var table = $(this).DataTable(
      "order": [
        [7, "desc"]
      ],
      columnDefs: [
          "searchable": false,
          "targets": 9
        ,
        
          "searchable": false,
          "targets": 10
        ,
        
          "orderable": false,
          "targets": 9
        ,
        
          "orderable": false,
          "targets": 10
        ,
        
          "className": "abc",
          "targets": [5]
        
      ],
      autoWidth: false,
      pageLength: 50,
      processing: true,
      serverSide: true,
      ajax: $(this).data('url')
    );

    // Setup - add a text input to each footer cell
    $('#balances tfoot th').each(function(i) 
      var title = $(this).text();
      $(this).html('<input type="text" placeholder="' + title + '" />');


      $('input', this).on('keyup change', function() 
        if (table.column(i).search() !== this.value) 
          table
            .column(i)
            .search(this.value)
            .draw();
        
      );

    );

  );
)

我的 bal_datatable.rb :

def bal_method1(balances)
  if(@tabular.search7 > '00/00/0000' )
    balances.where("balances.updated_at > (:search) and balances.updated_at < (date (:search) + interval '1 day')", search: "#@tabular.search7")
  else
    balances.where("1 = 1")
  end
end

请帮忙。

【问题讨论】:

【参考方案1】:
if( this.value.match(/(\d2\/\d2\/\d4)/))
             table.column(i).search( this.value ).draw(); 
            else if( this.value == '')
             table.column(i).search( this.value ).draw(); 

【讨论】:

以上是关于在搜索文本框中输入日期值时如何避免 ajax 错误?的主要内容,如果未能解决你的问题,请参考以下文章

用户输入值时如何从文本框中填充消息框?

选择下拉框中的值时启用文本框[关闭]

仅当用户输入值时按参数搜索

如果给定jquery ui进行日期选择,如何不允许用户在日期字段的文本框中输入? [复制]

如何从html中的文本框中清除搜索输入? [复制]

如何在数据表中的搜索框中输入值