gpt4 book ai didi

javascript - DataTables 搜索按钮单击而不是输入输入

转载 作者:搜寻专家 更新时间:2023-10-31 22:54:44 25 4
gpt4 key购买 nike

我想知道是否可以将搜索功能从 input 中移出,以获取由 DataTables 修改的表格。目前我有一个执行此功能的自定义输入:

<script>
$(document).ready(function() {
var oTable = $('#staffTable').DataTable();
$('#searchNameField').keyup(function () {
oTable.search($(this).val()).draw();
});
})
</script>

输入看起来像这样:

<label for="searchNameField" class="col col-form-label">Name:</label>
<div class="col-sm-11">
<input type="text" class="form-control ml-0 pl-2" id="searchNameField"
placeholder="Name" autofocus/>
</div>

我想做的是将它移到一个按钮上。我认为可能的情况如下:

<script>
$(document).ready(function() {
var oTable = $('#staffTable').DataTable();
$('#searchButton').click(function () {
oTable.search($(this).val()).draw();
});
})
</script>

按钮看起来像这样:

<button id="searchButton" type="button" class="btn btn-sm btn-success" style="width: 150px">
<i class="fa fa-search">
Search
</i>
</button>

但是当我点击按钮时,这不起作用。在输入这个问题时,我意识到这可能是因为当我单击按钮时,它不知道从哪里获取过滤文本以实际过滤表格。

有没有一种方法可以让我点击一个引用输入的按钮,然后去过滤表格?

最佳答案

你是对的,你需要重新定义$(this),它现在指的是按钮,而不是搜索框:

$(document).ready(function() {
var oTable = $('#staffTable').DataTable();
$('#searchButton').click(function () {
oTable.search($("#searchNameField").val()).draw();
});

// EDIT: Capture enter press as well
$("#searchNameField").keypress(function(e) {
// You can use $(this) here, since this once again refers to your text input
if(e.which === 13) {
e.preventDefault(); // Prevent form submit
oTable.search($(this).val()).draw();
}
});
});

关于javascript - DataTables 搜索按钮单击而不是输入输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47535637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com