javascript写的一个表单动态输入提示的代码

要实现JavaScript写的一个表单动态输入提示,我们需要使用以下步骤:

  1. HTML页面中创建表单输入框及提示框的DOM节点;
  2. 监听表单输入框的keyup事件,获取输入框中输入的内容;
  3. 根据输入的内容动态生成提示框中的内容;
  4. 实现鼠标移动到提示框中的选项可以高亮并填充到输入框中;
  5. 实现键盘上下键可以在提示框中切换选项并填充到输入框中;
  6. 实现鼠标点击或回车键可以将选中的选项填充到输入框中。

下面是一个示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表单动态输入提示</title>
</head>
<body>
    <form>
        <label for="search">Search:</label>
        <input type="text" id="search" name="search">
        <div id="tip"></div>
    </form>
    <script>
        const searchInput = document.querySelector('#search');
        const tipDiv = document.querySelector('#tip');
        let dataList = ['apple', 'banana', 'cherry', 'date', 'elderberry', 'fig', 'grape', 'honeydew'];

        searchInput.addEventListener('keyup', function(e) {
            let inputValue = e.target.value;
            if (inputValue) {
                let filterDataList = dataList.filter(item => item.toLowerCase().includes(inputValue.toLowerCase()));
                let showTip = "";
                for (let i = 0; i < filterDataList.length; i++) {
                    showTip += `<div class="item">${filterDataList[i]}</div>`
                }
                tipDiv.innerHTML = showTip;
            } else {
                tipDiv.innerHTML = "";
            }
        });

        tipDiv.addEventListener('mouseover', function(e) {
            if (e.target.classList.contains('item')) {
                removeClass();
                e.target.classList.add('active');
            }
        });

        tipDiv.addEventListener('mouseout', function(e) {
            if (e.target.classList.contains('item')) {
                e.target.classList.remove('active');
            }
        });

        tipDiv.addEventListener('mousedown', function(e) {
            if (e.target.classList.contains('item')) {
                searchInput.value = e.target.innerText;
                tipDiv.innerHTML = "";
            }
        });

        function removeClass() {
            const activeElement = document.querySelector('.active');
            if (activeElement) {
                activeElement.classList.remove('active');
            }
        }
    </script>
</body>
</html>

在这个示例代码中,我们创建了一个表单输入框和一个提示框的DOM节点。在输入框中输入的内容触发keyup事件,获取输入框中输入的内容,并根据输入的内容动态生成提示框中的内容。在提示框中,我们绑定了鼠标mouseover事件和mousedown事件,用户可以通过鼠标在提示框中选取内容并填充到输入框中。同时我们也实现了键盘上下键的监听,用户可以通过键盘上下键在提示框中快速切换选项并填充到输入框中。

以上是一个示例代码的实现,如果需要更多的表单动态输入提示效果,可以在以上示例代码基础上进行扩展。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript写的一个表单动态输入提示的代码 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JS深入浅出Function与构造函数

    JS深入浅出Function与构造函数 什么是Function? 在JavaScript中,函数被看作是对象,函数也可以看作是特殊的对象。每个函数都是Function类型的实例,都有自己的属性和方法。Function类型的构造函数是用来创建函数对象的。 函数的作用是封装一段代码,并可以用来重复使用,降低代码复杂性,方便维护。一个函数可以有0个或多个参数,可以…

    JavaScript 2023年5月27日
    00
  • JS+CSS实现炫酷光感效果

    下面我将详细讲解“JS+CSS实现炫酷光感效果”的完整攻略。 准备工作 在开始实现炫酷光感效果之前,我们需要先准备好以下内容: 一个包含至少一个元素的 HTML 页面 具有光感特性的图片或其他媒体资源 一些基本的 CSS 和 JavaScript 知识 实现方法 接下来,我们将通过以下步骤实现炫酷光感效果: 步骤一:在 HTML 文件中添加所需元素 首先,在…

    JavaScript 2023年6月11日
    00
  • JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析

    JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析 在JavaScript编程中,数据类型(Data Type)是非常重要的概念,因为不同的数据类型有着不同的处理方式。JavaScript中的数据类型可以分为基本数据类型和引用数据类型,同时数据的存储方式也不同,有堆和栈的区别。 基本数据类型(Primitive Type) JavaScript中的…

    JavaScript 2023年5月28日
    00
  • 编辑浪子版表单验证类

    编辑浪子版表单验证类是一个用于客户端表单验证的PHP类库,其根据表单元素的不同要求,可实现多种验证方式,例如验证邮箱格式、验证手机号格式、验证必填项等等。下面我将详细讲解如何使用这个类库实现表单验证。 确认服务器支持PHP 在开始使用编辑浪子版表单验证类前,首先需要确认服务器支持PHP。可通过创建一个phpinfo.php文件,将下面一行代码插入到文件中: …

    JavaScript 2023年6月10日
    00
  • js获取form表单所有数据的简单方法

    获取表单数据是前端开发中常用的操作之一。下面是获取form表单所有数据的简单方法的攻略。 步骤一:获取form元素 首先,我们需要通过document.querySelector()或document.getElementById()方法获取到form元素。这里以document.getElementById()方法为例,示例代码如下: const form…

    JavaScript 2023年6月10日
    00
  • 详解JavaScript 事件流

    请听我详细讲解“详解JavaScript 事件流”的完整攻略。 什么是JavaScript事件流 JavaScript事件流指的是介绍HTML中事件触发的顺序。HTML通常是从外部开始的,并从外部向下(冒泡阶段)移动到最下方元素,然后在内部从下到上执行(捕获阶段)。事件以冒泡的形式进行,这意味着在激活事件后,事件将从内部向外冒泡。例如,如果你点击一个按钮,事…

    JavaScript 2023年6月10日
    00
  • JavaScript操纵窗口的方法小结

    以下是关于“JavaScript操纵窗口的方法小结”的完整攻略: JavaScript操纵窗口的方法小结 在前端开发中,我们经常需要通过JavaScript操纵窗口,实现弹出新窗口、关闭窗口、调整窗口大小等操作。下面我们就来介绍一些常用的JavaScript操纵窗口的方法: 弹出新窗口 我们可以通过window.open()方法来实现弹出新窗口的功能。该方法…

    JavaScript 2023年6月11日
    00
  • 深入浅出探究JavaScript中的async与await

    深入浅出探究JavaScript中的async与await 什么是async/await 在ES7中,JavaScript引入了async/await关键字,用于解决异步编程的问题。async表示函数是异步的,并且它总是返回一个promise,而await表示需要等待promise对象返回结果,然后再继续执行后面的代码。 如何使用async/await 在使…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部