首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery delicious相似标签输入

jQuery delicious相似标签输入
EN

Stack Overflow用户
提问于 2010-12-05 04:44:01
回答 2查看 572关注 0票数 0

我正在尝试构建一个标签输入,它的作用类似于美味标签,我设法将一个文本的值发送到文本输入字段,但不能附加超过一个标签。如何让它提交多个带分隔符的标记“,”..

代码语言:javascript
复制
        <label for="tags">Tags</label>
    <input type="text" name="tags" id="tags"  />


    <p>
        <a class="but">tag 1</a>
        <a class="but">tag 2</a>
        <a class="but">tag 3</a>
        <a class="but">tag 4</a>
        <a class="but">tag 5</a>
        <a class="but">tag 6</a>
        <a class="but">tag 7</a>
        <a class="but">tag 8</a>
    </p>
   <script>
    $(".but").click(function () {
      var text = $(this).text();
      $("#tags").val(text);
    });
   </script>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-05 04:54:30

这将保留#tags输入的当前值(如果有),并追加用,分隔每个标签的新标签

代码语言:javascript
复制
$(".but").click(function () {
    var text = $(this).text();
    var input = $("#tags");
    var curtext = input.val();
    input.val( (curtext ? curtext + ", " : "") + text);
    $(this).hide(); // Hide the tag link
});

示例:http://jsfiddle.net/petersendidit/ZFYC5/

票数 1
EN

Stack Overflow用户

发布于 2010-12-05 05:09:02

下面是我如何使用jQueryUI做到这一点

代码语言:javascript
复制
function split(val) {
    return val.split(/,\s*/);
}

function extractLast(term) {
    return split(term).pop();
}

    $("input[name='categoriesAsText']").autocomplete({
        source: function(request, response) {
            $.getJSON(URLS.search_admin_categories, {
                term: extractLast(request.term)

            }, response);
        },
        select: function(event, ui) {
            var terms = split(this.value);
            terms.pop();
            terms.push(ui.item.value);
            terms.push("");
            this.value = terms.join(", ");
            return false;
        },
        focus: function() {
            return false;
        },
        search: function() {
            var term = extractLast(this.value);
            if (term.length < 2) {
                return false;
            }
        }
    });

以下是用于执行搜索的服务器端代码。它是用Grails编写的,但您应该能够将其定制为您选择的服务器端语言:

代码语言:javascript
复制
def search = {
    withFormat {
      json {
        def categories = Category.createCriteria().list() {
          ilike('name', "${params.term}%")
        }

        categories = categories.collect {
          [id: it.id, label: it.name, value: it.name]
        }

        render categories as JSON
      }
    }
  }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4355730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档