Javascript 数据表过滤-智能搜索中的精确匹配

Javascript 数据表过滤-智能搜索中的精确匹配,javascript,ruby-on-rails,coffeescript,datatables,jquery-datatables,Javascript,Ruby On Rails,Coffeescript,Datatables,Jquery Datatables,我想继续使用datatables的智能搜索(键入时搜索)。问题是,我的一个专栏显示的值是:person和person。所以,有着数百万条记录,我很难在输入“person”时只显示“persones”的栏目中找到“person” 我不想要完全匹配的。在某些情况下,这会使我键入“person-xyz-123”中的全名 有没有一种方法可以让我在引号中指定say“person”并告诉datatables,当我键入引号时,我只想进行精确搜索,并且仍然保持正常搜索 咖啡脚本文件: $(xyz).ready

我想继续使用datatables的智能搜索(键入时搜索)。问题是,我的一个专栏显示的值是:person和person。所以,有着数百万条记录,我很难在输入“person”时只显示“persones”的栏目中找到“person”

我不想要完全匹配的。在某些情况下,这会使我键入“person-xyz-123”中的全名

有没有一种方法可以让我在引号中指定say“person”并告诉datatables,当我键入引号时,我只想进行精确搜索,并且仍然保持正常搜索

咖啡脚本文件:

$(xyz).ready ->
    $('#xyz').dataTable
      bProcessing: true
      bServerSide: true
      sDom: "<\"top\"T>rt<\"bottom\"lip><\"clear\">"
      oTableTools:
        sSwfPath: "../TableTools-2.1.5/media/swf/copy_csv_xls_pdf.swf"
      sAjaxSource: $('#xyz').data('source')
    .columnFilter aoColumns: [
      { type: "text" },
      { type: "text" },
      { type: "text" },
      { type: "text" },
      { type: "text" },
      { type: "text" },
      { type: "text" },
      { type: "text" },
      {
      type: "select"
      values: [
        {"value": 0, "label": "Failed"},
        {"value": 1, "label": "Completed"},
        {"value": 2, "label": "Processing"}
      ]
      }
    ]
    return
$(xyz).ready->
$('#xyz')。数据表
b处理:true
bServerSide:true
sDom:“rt”
可旋转工具:
sSwfPath:“../TableTools-2.1.5/media/swf/copy\u csv\u xls\u pdf.swf”
sAjaxSource:$('#xyz')。数据('source'))
.columnFilter列:[
{type:“text”},
{type:“text”},
{type:“text”},
{type:“text”},
{type:“text”},
{type:“text”},
{type:“text”},
{type:“text”},
{
类型:“选择”
价值观:[
{“值”:0,“标签”:“失败”},
{“值”:1,“标签”:“已完成”},
{“值”:2,“标签”:“处理”}
]
}
]
返回
(我假设使用1.9API,因为这是您在问题中使用的API。)

可以执行您想要的操作,但这意味着修改服务器端代码,以响应对您作为
sAjaxSource
选项提供的URL的请求。它必须执行以下检查:

  • 如果
    sSearch
    参数(添加到
    sAjaxSource
    URL)包含双引号中的术语,如
    “person”
    ,则删除双引号并精确执行匹配

  • 否则执行部分匹配


  • 关于DataTables发送到服务器的内容及其所需内容的完整文档。

    我创建了此帮助函数来解决我的问题:

      def filter_helper(data)
        return "#{data[:name]} = :search", search: "#{params[data[:dt_name]].gsub!(/^\"|\"?$/, '') }" if "#{params[data[:dt_name]]}".chars.first == "\""
        return "#{data[:name]} like :search", search: "%#{params[data[:dt_name]]}%" if "#{params[data[:dt_name]]}".chars.first != "\""
      end
    

    您是否使用服务器端处理来执行此操作?是的。我已经复制了上面的代码,你能给我一个例子作为你的建议吗?谢谢我知道如何使用Django,但我不使用Ruby on Rails。我想我已经找到了答案。我会张贴时,我有干净的代码。谢谢你读这本书!对不起,我之前没有回复。忙碌的。。。我在这里得到了很多对我的评论的回应。没问题。谢谢你的帮助