【问题标题】:Span as input with jquery ui autocomplete跨度作为输入与 jquery ui 自动完成
【发布时间】:2011-06-27 08:14:04
【问题描述】:

在我正在构建的网页中,我开始使用 -tags 作为启用内容可编辑标志的输入。这样做的原因是它们看起来更适合对齐,并且当您输入它们时它们能够调整自己的大小。我将跨度的内容保存在 keyup 上的隐藏输入字段中。

我会在需要时动态添加更多跨度。

现在,当人们在我的跨度字段中键入内容时,我需要能够自动完成,但 .autocomplete 似乎不适用于跨度字段(?),有什么简单的解决方案吗?

<div>
  <input type="hidden" name="generated_name[1]" />
  <span contenteditable="true" class="editbox"></span>
  <input type="hidden" name="generated_name[2]" />
  <span contenteditable="true" class="editbox"></span>
</div>
<script>
  $(document).ready(function () {
    $('.editbox').live('keyup', function() {
      $(this).prev().val($(this).html());
    });
  });
</script>

该代码至少对我很有效,我可以添加更多输入字段(输入+跨度)并且它有效。

现在我希望能够在输入跨度而不是输入字段时进行搜索,并执行以下操作:

$(document).ready(function() {
  var tags = [
    "Tag1", "Tag2", "Tag3", "Tag4", "Tag5", "Tag6", "Tag7"
  ];
  $('.editbox').autocomplete({
    source: tags
  });
});

有人知道这是否可以通过简单的方式实现吗?

【问题讨论】:

    标签: jquery-ui search input html jquery-ui-autocomplete


    【解决方案1】:

    我想没有办法解决这个问题,因为自动完成依赖于在输入上使用。那么,那两个&lt;/value&gt;在那里做什么呢?他们应该是&lt;/span&gt;。 滥用跨度作为输入对我来说毫无意义。输入的存在正是您使用它的目的,您也可以设置输入的样式,这不是用跨度替换它们的好借口。

    【讨论】:

    • 我的建议是根据 jqueryui 的自动完成功能制作我自己的自动完成功能,并将 .val() 的所有用法替换为 .html()。并在我的本地系统中将其重命名为 spanautocomplete。 (而 是一个错误)
    • @Etu:事件(比如更改事件)没有问题吗?
    • 不是我注意到的,最大的问题是 spans 使用 .html 作为内容,而输入使用 .val
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    相关资源
    最近更新 更多