bootstrap4模仿写一个百度搜索框,增加防抖,输入框增加'X'清除功能,点击搜索必须要等待请求结果返回后才能继续点击
时间: 2024-02-15 19:02:11 浏览: 108
好的,下面是相应实现的代码:
HTML:
```html
<div class="container">
<div class="row justify-content-center">
<div class="col-lg-6">
<form>
<div class="form-group">
<div class="input-group">
<input type="text" class="form-control" id="searchBox" placeholder="请输入搜索内容">
<div class="input-group-append">
<button type="button" class="btn btn-secondary" id="clearBtn"><i class="fas fa-times"></i></button>
</div>
</div>
<button type="submit" class="btn btn-primary mt-3" id="searchBtn">搜索</button>
</div>
</form>
</div>
</div>
</div>
```
CSS:
```css
.container {
margin-top: 50px;
}
#searchBox {
border-radius: 20px 0 0 20px;
}
#clearBtn {
display: none;
border-radius: 0 20px 20px 0;
}
#searchBtn {
border-radius: 0 20px 20px 0;
}
input:focus + #clearBtn {
display: block;
}
```
JavaScript:
```javascript
// 防抖函数
function debounce(func, wait, immediate) {
let timeout;
return function() {
const context = this;
const args = arguments;
const later = function() {
timeout = null;
if (!immediate) func.apply(context, args);
};
const callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
}
// 清空搜索框
function clearSearchBox() {
$("#searchBox").val("");
$("#clearBtn").hide();
}
$(document).ready(function() {
// 监听搜索框输入
$("#searchBox").on("input", function() {
if ($(this).val().length > 0) {
$("#clearBtn").show();
} else {
$("#clearBtn").hide();
}
});
// 监听清除按钮点击
$("#clearBtn").on("click", function() {
clearSearchBox();
});
// 监听表单提交
$("form").on("submit", function(e) {
e.preventDefault();
const keyword = $("#searchBox").val().trim();
if (keyword.length > 0) {
// 模拟发送请求
$("button").prop("disabled", true);
setTimeout(function() {
alert(`搜索关键词:${keyword}`);
$("button").prop("disabled", false);
}, 2000);
}
});
// 防抖处理
$("form").on("submit", debounce(function(e) {
e.preventDefault();
}, 500, true));
});
```
在这个示例中,我们使用了Bootstrap 4的输入框组件和Font Awesome图标库中的"fa-times"图标来创建了一个带有清空功能的搜索框。当用户输入内容时,清空按钮会显示出来,点击清空按钮会清空搜索框。在搜索按钮被点击时,会模拟发送请求,并在请求返回后弹出提示框显示搜索关键词。在请求发送期间,搜索按钮会被禁用。防抖函数的间隔时间为500毫秒,即当用户输入停止超过500毫秒后才会触发搜索请求。
阅读全文