【问题标题】:How to get exact value from input in jquery如何从jquery中的输入中获取精确值
【发布时间】:2019-02-25 10:41:47
【问题描述】:

我正在尝试使用 jquery 过滤引导数据表。我已经完成了。但问题是当我选择Male 时,它也会给出结果female。 jquery 没有捕捉到名为 Male 的确切单词。

这是我的 jquery 代码和结果

$(document).ready(function() {
    var table =  $('#example1').DataTable();

    $('#gender').on('change', function () {
      table.columns(1).search( this.value ).draw();
    });
 });

这是我选择Female 时的看法。 Select Female

这是我选择Male 时的视图 Select Male

那么当我选择男性时,我如何得到只有男性的结果。

【问题讨论】:

  • 明确一点,这与 Bootstrap 或 jQuery 无关。这是DataTables 功能。
  • 好吧,男性是女性的一部分,也许你可以传入像/^male$/这样的正则表达式?
  • 我怎样才能把它传递给上面的jquery代码?

标签: javascript jquery datatables datatables-1.10


【解决方案1】:

那么,您可以使用search 函数的第二个参数来表明您的查询是一个正则表达式。然后,您还必须表明您不想使用智能搜索功能,这是第三个参数

const regExSearch = '^' + this.value + '$';
table.columns(1).search(regExSearch, true, false).draw();

这将包括您输入前后的空格,因此您可能不需要这些。

我提供的示例代码,实际上只是文档中的代码

【讨论】:

  • 操作。当我选择男性/女性结果为空。
  • @user3263347 是的,我想这主要是因为它前面的空格不是可选的;)我更新了答案,所以请随时再次检查
  • 当我选择男性时,它的值为空。但是当我选择女性时,它会得到结果。
  • 好吧,只需在您的问题中添加一些演示代码/数据,这样我们就可以重现您的代码,然后我可以检查以更新我的答案以使其适合
【解决方案2】:

男性/女性的两个性别值在单词中都有“男性”,因此在这两种情况下都会进行搜索。您可以使用'\\b'+'this.value'+'\\b' 正则表达式来精确地使用search 这个词。检查/bhere

 $('#gender').on('change', function () {
      table.columns(1).search( '\\b'+'this.value'+'\\b' ).draw();
    });

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 2011-08-08
    • 2020-02-05
    • 1970-01-01
    相关资源
    最近更新 更多