如何在键入时应用ajax/json搜索过滤器
how to apply an ajax/json search filter when typing
我使用json在页面上显示项目,我还有一个带有文本框和按钮的搜索过滤器,我开始工作,所以当项目详细信息被包括并输入时,它会过滤项目,以匹配用户输入的搜索。下面是搜索表单和js:
<div class="container search-container">
<form class="form-search form-inline">
<input type="text" class="input-medium search-query" placeholder="Search"> <button type="submit" class="btn">Search</button>
</form>
调用json:
$.getJSON('iproducts.json',function(products){
var output = "";
$.each(products.appleitems, function(i, product) {
output +=
"<div class='"col-xs-12 col-sm-6 col-md-3'"><div class='panel panel-default'><div class='panel-footer'><h4 class='text-center'>"
+ products.appleitems[i].Product_id
+ "</h4></div>" + "<img src ='" + products.appleitems[i].Imgpath + "' style='width:100%;height:250px; display: block;' id='appleinfo_"
+ products.appleitems[i].Product_id +
"' /><p class='lead text-justify'>" + products.appleitems[i].Information
+ "</p><div class='panel-footer'><button class='btn btn-primary btn-block'>£" + products.appleitems[i].Price+"</button></div></div></div>";
});
$("#container").html(output);
});
过滤json:
$('.form-search').on('submit',function(){return false;});
$('.form-search .btn').on('click', function(e){
var query = $.trim($(this).prevAll('.search-query').val()).toLowerCase();
regex = new RegExp(query, "i");
$.getJSON('iproducts.json', function (products) {
var output;
$.each(products.appleitems, function (i, product) {
if (product.Product_id.search(regex) != -1) {
output +=
"<div class='"col-xs-12 col-sm-6 col-md-3'"><div class='panel panel-default'><div class='panel-footer'><h4 class='text-center'>"
+ products.appleitems[i].Product_id
+ "</h4></div>" + "<img src ='" + products.appleitems[i].Imgpath + "' style='width:100%;height:250px; display: block;' id='appleinfo_"
+ products.appleitems[i].Product_id +
"' /><p class='lead text-justify'>" + products.appleitems[i].Information
+ "</p><div class='panel-footer'><button class='btn btn-primary btn-block'>£" + products.appleitems[i].Price+"</button></div></div></div>";
}
$('#container').html(output);
console.log(products.appleitems[i]);
}
)
});
我想让我的搜索更具动态性,我希望当用户实际在文本框中键入而不是.click函数时,搜索范围缩小。我一直在尝试一些关键的方法,但都没有奏效。有人知道我如何将其应用于搜索而不是使用.click函数吗?
非常感谢
尝试按键事件
$('.search-query').on('keypress',function(){
//get the json
//filter it
});
https://api.jquery.com/change/是正确的方法。
像$('.search-query').on('change', function(e){ ...
一样使用
相关文章:
- 神秘的ajax json请求问题jQuery
- Ajax json到for循环中
- 404在Jquery AJAX JSON PHP POST上找不到
- 如何在phonegap应用程序中处理Ajax json响应
- Ajax/JSON请求php处理页面
- 无法使用jquery/ajax/json从mysql获取数据来选择框
- Jquery更新到1.10.2后,Jquery Ajax Json对象未显示
- 根据ajax json响应更新html表
- 谷歌地图标记不显示ajax json数据
- 反伪造令牌和Ajax JSON.stringify Post不起作用
- 向ajax json请求添加缓存
- Ajax-JSON不会只在PATCH中发送
- 显示来自ajax json解析的数据时出现问题
- 从 Ajax-JSON 中提取元素
- 通过Javascript/AJAX/JSON/PHP将数据从JQuery传递到数据库
- 简单的jQuery AJAX JSON调用
- Ajax JSON 添加尾随冒号
- PHP REST server - AJAX - JSON
- 将字符串传递给 AJAX/Json
- 从 JavaScript 获取数据 从 AJAX (JSON) 响应获取数据