使用 Javascript 按下空格键时在文本区域输入上执行事件

2024-02-17

I'm trying to mimic the tags feature on Stack Overflow where when you click the space button on the text box, it adds a blue border to the previous text in the textbox and adds an X button besides it to remove it if wanted.

这是我正在尝试做的事情的图像示例:

.

这是我到目前为止所拥有的。如果有人可以帮助我,我将非常感激。

<input id="tags"> 

<script>

document.getElementById("tags").addEventListener('keydown', function (event) {
    if (event.keyCode === 32) {
       // what do I fill in here??
    }
});
</script>

看看 HTML 是什么样子的:

<div class="js-tag-editor tag-editor multi-line s-input" style="padding: 0px 9.1px; box-sizing: border-box; margin-top: 0px; margin-bottom: 0px; width: 100%;">
    <span><span class="s-tag rendered-element">javascript<a class="js-delete-tag s-tag--dismiss" title="Remove tag"><svg class="svg-icon iconClearSm pe-none" width="14" height="14" viewBox="0 0 14 14">
            <path d="M12 3.41L10.59 2 7 5.59 3.41 2 2 3.41 5.59 7 2 10.59 3.41 12 7 8.41 10.59 12 12 10.59 8.41 7z">
            </path>
          </svg></a></span>
      <span class="s-tag rendered-element">arrays<a class="js-delete-tag s-tag--dismiss" title="Remove tag"><svg class="svg-icon iconClearSm pe-none" width="14" height="14" viewBox="0 0 14 14">
            <path d="M12 3.41L10.59 2 7 5.59 3.41 2 2 3.41 5.59 7 2 10.59 3.41 12 7 8.41 10.59 12 12 10.59 8.41 7z">
            </path>
          </svg></a></span>
      <span class="s-tag rendered-element">javascript-events<a class="js-delete-tag s-tag--dismiss" title="Remove tag"><svg class="svg-icon iconClearSm pe-none" width="14" height="14" viewBox="0 0 14 14">
            <path d="M12 3.41L10.59 2 7 5.59 3.41 2 2 3.41 5.59 7 2 10.59 3.41 12 7 8.41 10.59 12 12 10.59 8.41 7z">
            </path>
          </svg></a></span>
      <span class="s-tag rendered-element">javascript-objects<a class="js-delete-tag s-tag--dismiss" title="Remove tag"><svg class="svg-icon iconClearSm pe-none" width="14" height="14" viewBox="0 0 14 14">
            <path d="M12 3.41L10.59 2 7 5.59 3.41 2 2 3.41 5.59 7 2 10.59 3.41 12 7 8.41 10.59 12 12 10.59 8.41 7z">
            </path>
          </svg></a></span>
    </span>
    <input type="text" autocomplete="off" tabindex="103" placeholder="" id="tageditor-replacing-tagnames--input" class="s-input js-tageditor-replacing" style="width: 19px;"><span></span>
  </div>

It's <span>s 后面跟着一个输入。在用户看来,输入实际上是整行,但事实并非如此——输入只是右侧可输入的部分。

要添加边框,请使用 CSS。要删除附加元素,请调用.remove()在上面。就像是:

const input = document.querySelector("input");
input.addEventListener('keydown', (event) => {
  if (event.keyCode === 32) {
    const span = input.insertAdjacentElement('beforebegin', document.createElement('span'));
    span.textContent = input.value;
    const x = span.appendChild(document.createElement('button'));
    x.textContent = 'x';
    x.onclick = () => span.remove();
    input.value = '';
  }
});
.tag-container {
  border: 1px solid black;
}
.tag-container span {
  background-color: lightblue;
  border: 1px solid blue;
  padding-left: 1em;
  margin-right: 1em;
}
.tag-container span button {
  margin-left: 1em;
}
.tag-container input:focus, .tag-container input {
  outline: none;
  border: 0;
}
<div class="tag-container">
  <input>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Javascript 按下空格键时在文本区域输入上执行事件 的相关文章

随机推荐

  • 立场:React Native中的绝对问题

    我正在制作一个反应本机应用程序 其中有一个左侧和右侧部分 左侧部分包括flex 0 7右侧部分包括flex 0 2 在左侧部分内 我有一个容器 里面有一个ImageBackground https reactnative dev docs
  • MongoDB 查询 - 限制名称与模式匹配的字段

    我已经阅读了有关 MongoDB 中投影的所有内容 我希望这很简单 但由于 Mongo 查询的巨大灵活性 我错过了它 在我们的 MySql 数据库中 我们采用了一种业务实践 即为 隐藏 字段添加下划线前缀 我们的应用程序知道如何隐藏这些字段
  • PHP 中同时调用多个 API

    我正在处理一个场景搜索页面 http www idynbiz com web html carcrawler 该搜索页面必须同时对以下 5 个搜索引擎进行 API 调用 http www kijiji ca http www kijiji
  • C - RGB 值 - 计算模糊滤镜的 RGB 值的平均值

    前两个并不难 但第三个让我生气 模糊滤波器必须计算某些像素组的 RGB 值的平均值 以便替换中心像素的值 想象一个 3x3 的网格 其中中心的像素必须使用周围八个像素的平均值和中心像素本身的 RGB 值进行操作 到目前为止我所做的如下 Bl
  • 在 Magento 中根据 URL 参数加载对象

    我在为 Magento 商店创建自定义模块时遇到问题 我已成功添加路线 着陆 并创建 布局文件 在我的基本布局中显示模板内容 我现在需要稍微超越这一点 我希望能够从 URL 加载参数 根据该参数抓取一个对象 并根据对象的内容显示内容 示例
  • Magento - 从预调度观察者转发到不同的控制器操作

    是否可以根据我可以在控制器预调度事件中检查的特定条件转发到不同的操作 在同一控制器内 例如 要运行的操作是索引 如果我为预调度事件创建一个观察者 如果某个条件为真 我想运行不同的操作 myAction而不是indexAction 您可以在预
  • Angular JS 和部分

    是否可以在 Angular JS 中将 html 页面嵌入到另一个页面中 如果可以的话 该怎么办呢 Here http docs angularjs org tutorial step 08在他们的教程中 部分内容并未嵌入页面中 但它就像您
  • 使用 webview 中的 cookie 执行 HTTP 请求

    我有这样的场景 我的应用程序在 webView 中显示一个 2 页的登录过程 第一页仅询问您计划连接到哪个域 第二页要求提供凭据 我正在尝试在 webView 中执行登录 然后执行来自本机代码的请求 我意识到我需要从 webView 获取存
  • 左侧固定列与表 colspan

    我已经使用了这个 js 文件和以下方法 https code jquery com jquery 3 3 1 js https code jquery com jquery 3 3 1 js https cdn datatables net
  • UISplitViewController 的详细视图中缺少标题栏

    我有一个UISplitViewController嵌入到容器视图中 因为它不在我的应用程序的根目录中 其机制运行良好 除了一个问题 iPad 上缺少详细视图的导航栏 初始设置基本如下 在 IB 中 将分割视图控制器拖到情节提要上 这将创建分
  • 无法使用 AutoLayout 设置 UICollectionViewCell 的宽度

    我有一个带有动态高度单元格的集合视图 基于可能的多行标签和内部的文本视图 当我跨越多行时 它可以完美地适应高度 但是 当文本只有一个单词或者没有覆盖整个屏幕宽度时 单元格的宽度就与需要的一样宽 从而导致单元格彼此相邻而不是彼此下方 看看文本
  • SELECT 和 UPDATE 表,因此线程不会重叠

    假设我有下表 ID Read 1 true 2 false 3 false 4 false 我需要读取最小的 ID 其中 Read false 另外 更新一下我现在已经读过了 因此 如果我执行存储过程 dbo getMinID 它将返回 I
  • 使用反射调用泛型重载方法

    我需要使用反射调用重载方法 我的课程如下 public static Transformer Overloaded method with generics parameter First Transform Method public s
  • 在 C#/.Net 中创建/切换桌面

    我当前正在使用 CreateDesktop 本机 C 函数 并在我的 C 代码中调用它来创建桌面并在桌面之间切换 有没有办法使用 Process 类或任何 c Net 类来做到这一点 这是我现在在课堂上使用的用于桌面切换的示例代码 Flag
  • PHP AJAX登录,这种方式安全吗?

    我刚刚启动 PHP 和 MySQL 并创建了一个登录表单 一切正常 现在我想添加 ajax 我考虑的第一个方法是使用 jQuery post 方法 我对代码没问题 这里是我将要做什么的快速想法 function login post log
  • 当 debug 为 0 时,如何使用 CakePHP 记录 php 错误?

    我想在 debug 0 的 CakePHP 站点上记录 PHP 错误 但是 即使我打开错误日志 如下所示 error reporting E ALL E NOTICE E DEPRECATED log errors On 它不记录错误 问题
  • 加载属性文件时出现问题

    我在加载时遇到问题 test xml and test properties 在同一文件夹conf中 我在 dist 文件夹中有一个 myProject jar conf 文件夹内的 test xml 和 test properties 要
  • C 中的 strcat 两个无符号字符

    我目前正在尝试对两个无符号字符使用 strcat 但我不断收到警告 这是我对 strcat 的了解 unsigned char A 100 B 100 A 0 1 B 0 2 strcat A B 我试图将它们放在一起 以便我得到 A 作为
  • 向 NSString 添加省略号

    我有以下代码 我试图使用核心文本来绘制它 这就是为什么我不能像 UILabel 那样剪切文本 换句话说 我必须自己找出省略号 CGSize commentSize self sizeDictionary valueForKey commen
  • 使用 Javascript 按下空格键时在文本区域输入上执行事件

    I m trying to mimic the tags feature on Stack Overflow where when you click the space button on the text box it adds a b