javascript - 创建标签的输入字段

标签 javascript jquery html css

<分区>

我想创建一个输入框,人们可以在其中输入他们的技能。当它显示在网站的前端时,每个技能都会成为它自己的元素。所以我希望用户像这样输入他们的技能:

skill 1, skill 2, skill 3

在网站的前端,应该是这样的:

[技能 1] [技能 2] [技能 3]。

所以逗号将每个技能分开
然后每个技能都会在CSS中应用一些样式。

我已经尝试了几种不同的技术,但似乎都没有达到我想要的效果,如果有人可以帮助我,我将不胜感激。

谢谢

最佳答案

不是没有 JavaScript(将标签添加到您的问题中)
此示例将允许您连续写入您的技能,同时按Enter 来“划分”它们。

Tags generator like stackoverflow

jQuery(function($) {

  $('#tags input').on('focusout', function() {
    var txt = this.value.replace(/[^a-zA-Z0-9\+\-\.\#]/g, ''); // allowed characters list
    if (txt) $(this).before('<span class="tag">' + txt + '</span>');
    this.value = "";
    this.focus();
  }).on('keyup', function(e) {
    // comma|enter (add more keyCodes delimited with | pipe)
    if (/(188|13)/.test(e.which)) $(this).trigger('focusout');
  });

  $('#tags').on('click', '.tag', function() {
    if (confirm("Really delete this tag?")) $(this).remove();
  });

});
#tags {
  float: left;
  border: 1px solid #ccc;
  padding: 4px;
  font-family: Arial;
}

#tags span.tag {
  cursor: pointer;
  display: block;
  float: left;
  color: #555;
  background: #add;
  padding: 5px 10px;
  padding-right: 30px;
  margin: 4px;
}

#tags span.tag:hover {
  opacity: 0.7;
}

#tags span.tag:after {
  position: absolute;
  content: "×";
  border: 1px solid;
  border-radius: 10px;
  padding: 0 4px;
  margin: 3px 0 10px 7px;
  font-size: 10px;
}

#tags input {
  background: #eee;
  border: 0;
  margin: 4px;
  padding: 7px;
  width: auto;
}
Add a skill and hit [,] or [Tab] or [Enter]<br><br>

<div id="tags">
  <span class="tag">Photoshop</span>
  <span class="tag">Illustrator</span>
  <input type="text" value="" placeholder="Add a skill" />
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

关于javascript - 创建标签的输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18635817/

相关文章:

javascript - JQuery Accordion 面板大小调整

javascript - 正常滚动不起作用

javascript - 如何调整带有动画文本的 Canvas 大小?

javascript - RegEx - 解析特定单词的字符串

php - 选择多个 div 并更改它们的背景

javascript - 如何解决,偶循环延迟(非实时)快速悬停时 `in, out , in , out , in, out , in , out`?

Javascript - 将图像导出到Excel

javascript - 展开和折叠 JavaScript

jquery - 如何仅在循环中第一次调用函数

javascript - 传递给 .attr() 的函数的索引和值参数