<div class="product-search-container">
<input
type="search"
list="product-search-list"
placeholder="搜索商品(如:耳机)..."
class="product-search-input"
>
<datalist id="product-search-list"></datalist>
<button class="search-btn">搜索</button>
</div>
<style>
.product-search-container {
display: flex;
align-items: center;
max-width: 600px;
margin: 2rem auto;
gap: 0;
}
.product-search-input {
flex: 1;
padding: 0.9rem 1.2rem;
border: 1px solid #e5e7eb;
border-right: none;
border-radius: 8px 0 0 8px;
font-size: 1rem;
outline: none;
transition: border-color 0.3s;
}
.product-search-input:focus {
border-color: #ff4757;
}
.search-btn {
padding: 0.9rem 1.5rem;
border: none;
border-radius: 0 8px 8px 0;
background: #ff4757;
color: white;
font-size: 1rem;
cursor: pointer;
transition: background 0.3s;
}
.search-btn:hover {
background: #e03140;
}
</style>
<script>
// 模拟后端商品数据(含名称和属性)
const productData = [
{ name: "无线蓝牙耳机", label: "降噪 | 24h续航 | ¥299" },
{ name: "智能手表", label: "血氧监测 | 防水 | ¥599" },
{ name: "平板电脑", label: "10.9英寸 | 256GB | ¥2999" },
{ name: "机械键盘", label: "青轴 | 全尺寸 | ¥199" },
{ name: "无线充电器", label: "多设备 | 15W | ¥89" }
];
// 渲染商品选项
const renderProductOptions = () => {
const datalist = document.getElementById("product-search-list");
datalist.innerHTML = productData.map(product =>
`<option value="${product.name}" label="${product.label}"></option>`
).join("");
};
// 页面加载时渲染
window.addEventListener("load", renderProductOptions);
// 搜索按钮点击事件(模拟提交)
document.querySelector(".search-btn").addEventListener("click",
() => {
const inputValue = document.querySelector(".product-search-input").value.trim();
if (inputValue === "") {
alert("请输入搜索内容");
return;
}
// 模拟搜索提交(实际项目中可替换为接口请求)
alert(`正在搜索商品:${inputValue}`);
});
</script>