我有一个输入框(搜索框)来过滤我的html表。我的查询能够过滤表格,但是当我清除搜索框时,它不会带回已有的数据
例如,如果我有
MacBook
Acer
我搜索M
显示MacBook
,这很好
但是当我从搜索框中清除M
时,该表仍然显示为
MacBook
而不是
MacBook
Acer
JS
<script>
$(document).ready(function () {
var typingTimer; //timer identifier
var doneTypingInterval = 100; //time in ms (5 seconds)
$("#query").on('keyup', function () {
clearTimeout(typingTimer);
if ($('#query').val()) {
typingTimer = setTimeout(doneTyping, doneTypingInterval);
}
});
});
function doneTyping() {
var key = $('#query').val();
$.ajax({
url: 'search/?query='+key,
type: 'GET',
beforeSend: function () {
// $("#table").slideUp('fast');
},
success: function (data) {
console.log(data);
$("#table").slideDown('fast');
var table = $("#table tbody");
table.html("");
$.each(data, function(idx, elem){
table.append(
//appending rows here
);
});
}
});
}
</script>
答案 0 :(得分:0)
此代码:
$("#query").on('keyup', function () {
clearTimeout(typingTimer);
if ($('#query').val()) {
typingTimer = setTimeout(doneTyping, doneTypingInterval);
}
});
绑定到一个keyup事件(ok),但会查看$('#query')是否有值:
if ($('#query').val()) {
如果清空输入字段,则此条件将为false。
只需删除if条件就可以了。
$("#query").on('keyup', function () {
clearTimeout(typingTimer);
typingTimer = setTimeout(doneTyping, doneTypingInterval);
});