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

yizhihongxing

要实现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日

相关文章

  • Vue中引入json的三种方式总结

    一共有三种方式可以在Vue中引入JSON文件,分别是通过异步请求、在Vue文件中直接定义JSON数据、在Vue组件中导入JSON文件。以下是每一种方式的详细讲解: 1. 异步请求 使用异步请求可以从其他地方获取JSON文件,在Vue组件中引入数据。 在Vue组件的created或mounted生命周期钩子函数中,使用axios或fetch等方式进行异步请求,…

    JavaScript 2023年5月27日
    00
  • JavaScript中圆括号()和方括号[]的特殊用法疑问解答

    下面是关于“JavaScript中圆括号()和方括号[]的特殊用法疑问解答”的完整攻略。 JavaScript中圆括号()的特殊用法 1. 函数调用 在JavaScript中,我们使用圆括号来调用函数,可以传递参数给函数。例如: function sayHello(name) { console.log(`Hello, ${name}!`); } sayHe…

    JavaScript 2023年6月10日
    00
  • php 解析xml 的四种方法详细介绍

    下面是关于”php解析xml的四种方法详细介绍”的攻略。 目录 背景 方法1:使用 SimpleXML 扩展 方法2:使用 DOM 方法3:使用 XMLReader 方法4:使用 SAX 总结 背景 为了在 Web 应用程序中处理 XML 数据,了解如何在 PHP 中解析 XML 是一个很好的技能。 PHP 有多种解析 XML 的方法 可供选择。在此处提供 …

    JavaScript 2023年6月10日
    00
  • 万字详解JavaScript手写一个Promise

    万字详解JavaScript手写一个Promise攻略 什么是Promise Promise是一个JS的异步编程解决方案,对于那些需要等待其他代码执行完成(网络请求等)才可以执行的代码块提供了更好的控制方法。 Promise对象有三种状态: pending, resolve, reject。pending状态表示等待执行,resolve状态表示完成执行,而r…

    JavaScript 2023年5月28日
    00
  • 浅谈layui 绑定form submit提交表单的注意事项

    浅谈layui 绑定form submit提交表单的注意事项 简介 Layui是一个简洁易用、界面优美的前端UI框架,由于其易于上手,成为了很多前端工程师首选框架之一。在Layui中,表单提交是一个常见的操作,而绑定表单提交的事件则是经常使用到的操作。本文将会简单介绍在Layui中,绑定form submit提交表单的注意事项。 使用方式 通常情况下,在La…

    JavaScript 2023年6月10日
    00
  • Javascript的表单验证长度

    JavaScript的表单验证长度是前端开发中常用的技术,它可以通过一些JS函数获取表单文本框中填写的内容,并且进行判断和验证,避免用户输入的内容过长或者过短或者为空等情况,同时这也是一种常见的防止恶意攻击的方法。下面是一些可能用到的JS函数和示例说明。 1.获取文本框的内容 可以使用document.getElementById()来获取某一个ID的元素,…

    JavaScript 2023年6月10日
    00
  • JS立即执行函数功能与用法分析

    下面是关于JS立即执行函数功能与用法分析的完整攻略。 一、什么是立即执行函数 立即执行函数(Immediately Invoked Function Expression, IIFE)是函数表达式的一种形式,它可以在定义后直接调用执行,不需要进行额外的函数调用。通常使用括号将函数表达式包裹起来,然后在最后加上一个括号,用于立即执行该函数。 代码示例: (fu…

    JavaScript 2023年6月11日
    00
  • 细说javascript函数从函数的构成开始

    细说JavaScript函数从函数的构成开始 JavaScript 函数是程序中的基础组件之一。在本文中,我们将深入了解 JavaScript 函数,包括函数的构成、参数传递和作为值的函数等。 函数的构成 JavaScript 函数由函数名称、参数列表、函数体和返回值组成。下面是一个最简单的 JavaScript 函数示例: function sayHell…

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