dmz社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1234|回复: 0

[前端] 使用CSS实现文本输入框的自动填充效果

[复制链接]

358

主题

374

帖子

1641

积分

荣誉会员

积分
1641

发表于 2023-9-7 14:00:16 | 显示全部楼层 |阅读模式

本站资源全部免费,回复即可查看下载地址!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
要实现文本输入框的自动填充效果,可以使用CSS中的`:hover`和`:focus`选择器以及JavaScript来实现。以下是一种可能的方法:

HTML部分:
[HTML] 纯文本查看 复制代码
<input type="text" id="input-box" />
<ul id="autocomplete-list"></ul>


CSS部分:
[CSS] 纯文本查看 复制代码
#autocomplete-list {
  display: none;
  list-style-type: none;
  padding: 0;
  margin: 0;
}

#autocomplete-list li {
  padding: 5px;
  cursor: pointer;
}

#autocomplete-list li:hover {
  background-color: #f1f1f1;
}


JavaScript部分:
[JavaScript] 纯文本查看 复制代码
var inputBox = document.getElementById('input-box');
var autocompleteList = document.getElementById('autocomplete-list');

inputBox.addEventListener('input', function() {
  var inputValue = inputBox.value.toLowerCase();

  // 清空自动完成列表
  autocompleteList.innerHTML = '';

  // 如果输入框不为空,则显示自动完成列表
  if (inputValue !== '') {
    autocompleteList.style.display = 'block';

    // 在此处根据需求从服务器或其他数据源获取自动完成的选项
    // 然后将选项添加到自动完成列表中
    // 这里只是假设有一个固定的选项列表
    var options = ['apple', 'banana', 'cherry', 'date', 'grape'];

    options.forEach(function(option) {
      if (option.startsWith(inputValue)) {
        var li = document.createElement('li');
        li.textContent = option;
        autocompleteList.appendChild(li);
      }
    });
  } else {
    // 输入框为空时隐藏自动完成列表
    autocompleteList.style.display = 'none';
  }
});

autocompleteList.addEventListener('click', function(event) {
  // 将所选的自动完成选项填充到输入框中
  inputBox.value = event.target.textContent;
  autocompleteList.style.display = 'none';
});


这段代码的作用是:监听输入框的`input`事件,在用户输入时根据输入值生成相应的自动完成选项,并显示在下拉列表中。当用户点击某个选项时,将该选项的文本内容填充到输入框中。

请注意:这只是一个简单的示例,实际情况中你可能需要根据需求进行适当的修改和扩展。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|dmz社区

GMT+8, 2026-7-29 03:50 , Processed in 0.040473 second(s), 9 queries , Redis On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表