【发布时间】:2016-07-24 20:04:28
【问题描述】:
我正在开发 Phoenix 网络应用程序,并试图找出一种方法来实现位于导航栏中的全局搜索框,该搜索框将指向位于 /users 的表并在其上执行搜索是用 DataTables 构建的。正如我现在所拥有的,当我通过搜索栏提交搜索时,它会重定向到/users,但不会将搜索应用于表格。
app.html.eex(布局):
<form id="custom-search-input" class="nav navbar-nav pull-right" action="/users">
<div class="input-group">
<input id="ee-search" type="text" name="search" class="form-control" placeholder="Employee Search" />
<span class="input-group-btn">
<button class="btn btn-info">
<i class="fa fa-search"></i>
</button>
</span>
</div>
</form>
app.js:
$(document).ready( function () {
$('#employeeTable').DataTable();
} );
var table = $('#employeeTable').DataTable( {
"lengthMenu": [ [15, 50, 75, 150, -1], [15, 50, 75, 150, "All"] ]
} );
我在我放在 app.js 中的 DataTables API 中找到了这个:
$('#ee-search').on( 'keyup', function () {
table.search( this.value ).draw();
} );
我提前道歉...我的 JavaScript 技能实际上是不存在的。如何让搜索输入应用于 DataTable?我假设有一种方法可以链接表单提交/javascript 代码/DataTable?如果您需要更多信息或代码,请告诉我。谢谢!
【问题讨论】:
-
如果您在
keyup处理程序可以看到的位置定义它,您应该能够按照您尝试的方式引用您的table变量。您可能想在 table.search 行上放置一个断点并评估 table 以查看它是否未定义。根据我的经验,学习 javascript 部分是查找语法的问题,部分是在 DOM 对象中四处走动以查看真正存在的内容。 -
也许我在上一篇文章中没有清楚地理解你的问题。用户输入的搜索框与显示过滤结果的表格是否在不同的页面上?
-
@BobRodes 是的,搜索框位于静态导航栏上,可以从任何地方访问。
/users页面基本上是一个员工目录,我正在努力使其可以从网站上的任何位置访问。
标签: javascript html datatables elixir phoenix-framework