如何在输入框中显示或删除 li 标签而不是文本

How to show or delete li tag instead of text in input box

我现在正在尝试解决一些棘手的 javascript 问题。

这里有两张图片可以说明我的困境。

如您所见,我希望使用带有删除按钮的li标签而不是文本,如果我点击+按钮,我希望显示可选择的项目,如果我选择其中一些然后点击完成,则显示它们作为第一张图片输入框中的 li 标签。

我不想要完整的源代码,但希望得到如何处理这个问题的指导。

如果您能推荐任何 javascript 库或代码来解决这个问题,我将不胜感激。

请帮帮我!!!

您正在尝试做的是复选框的变体,不是吗?该字段实际上显示的是选中的框 (<li>),而对话框显示的是其余未选中的框,用户可以添加这些框吗?

我会通过在这些框上放置一个 class 来指示它们是否被选中来做到这一点。然后一个简单的 css 规则将根据 class 显示或隐藏(display: nonedisplay: block)。单击其中一项(在主视图中)的关闭框,或单击项目本身(在对话框中)将切换选定状态。

一些其他的小笔记:

  • 我不会使用 'checked' 或 'selected' 作为您的 class 名称,因为可能会与内置功能发生冲突,或者至少会使人感到困惑。
  • 如果您也在显示器上使用 float: left,则框应该很好地紧凑地填充 space。
  • 最后,您可能想要两个(重复)项目列表:一个用于字段中的选定项目,另一个用于对话框中未选定的项目。两者都包含完整的可能性列表 并且具有相同的 class 值 (您必须在事件处理代码中维护)。否则你会尝试在文档中的两个地方使用相同的 DOM 节点,这对我来说太可怕了。