实现可输入搜索文字的下拉框是前端开发中常见的需求,下面我将分享一份利用jQuery实现该功能的攻略。
步骤一:编写HTML结构
首先,我们需要在HTML中定义一个搜索输入框和一个下拉框,具体的结构如下:
<input id="search-input" type="text" placeholder="请输入搜索内容">
<div id="search-result"></div>
其中,id为search-input
的input标签用于接收用户输入的搜索关键词;id为search-result
的div标签用于展示搜索结果。
步骤二:加载jQuery
接下来,在HTML文档中引入jQuery库,可以使用CDN,也可以下载本地文件。如:
<script src="https://cdn.bootcss.com/jquery/3.5.1/jquery.min.js"></script>
步骤三:编写jQuery脚本
我们需要利用jQuery实现以下功能:
- 监听搜索输入框的输入事件
- 发送Ajax请求获取搜索结果
- 将搜索结果展示在下拉框中
下面是代码示例:
$(function() {
$('#search-input').on('input', function() {
var keyword = $(this).val();
$.ajax({
url: 'search.php',
type: 'GET',
data: {
q: keyword
},
success: function(data) {
var html = '';
if (data.length > 0) {
for (var i = 0; i < data.length; i++) {
html += '<div class="search-item">' + data[i] + '</div>';
}
} else {
html = '<div class="search-item">暂无结果</div>';
}
$('#search-result').html(html).fadeIn();
}
});
});
$(document).on('click', function() {
if ($('#search-result').is(":visible")) {
$('#search-result').fadeOut();
}
});
$(document).on('click', '.search-item', function() {
var val = $(this).text();
$('#search-input').val(val);
$('#search-result').fadeOut();
});
});
上述代码中,我们先监听了id为search-input
的输入框的input
事件,即当用户在搜索框中输入字符时触发调用了一个Ajax请求,发送到服务端获取搜索结果数据。同时添加点击空白部分需要隐藏下拉框的事件监听。为了方便使用,我们把获取的结果渲染出来放在了名为#search-result
的div中,并且为每一条结果添加了一个名为search-item
的class,用于在点击结果时将其值填充到输入框中。
下面是使用上述代码的两个示例:
- 示例一:搜索英文字符
假设我们要搜索一个英文关键词,比如"JavaScript"。当用户在搜索框中输入"java"这几个字符的时候,下拉框应该展示出所有以"java"开头的单词,如"JavaScript"、"Java"等。通过上述代码,我们可以轻松地实现这一功能。
- 示例二:搜索中文字符
当需要搜索中文关键词时,需要注意的是我们发起Ajax请求是要将传递的关键词通过服务端的编码转换为URI编码。例如,我们搜索"前端"这个关键字,应该将其转换为"%E5%89%8D%E7%AB%AF"。在服务端接收到请求后,对关键字再进行一次URL解码即可得到原始中文字符。
实际操作时,使用URL方法编码需要传递两个参数,如下:
encodeURIComponent(keyword, 'gbk');
至此,一个利用jQuery实现可输入搜索文字的下拉框已经完成了,您可以根据自己的需求对其进行进一步的优化和改进。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:利用jQuery实现可输入搜索文字的下拉框 - Python技术站