Bootstrap标签输入 - 如何预填充对象值

时间:2014-04-05 07:49:15

标签: jquery twitter-bootstrap tags

我在我的表单中使用了Bootstrap标记输入,并使用以下代码进行了初始化:

$('#looking_for_job_titles').tagsinput({
    itemValue: 'id',
    itemText: 'name'
});

// TypeAhead.js 
var job_scopes = new Bloodhound({
    datumTokenizer: function(d) {
        return Bloodhound.tokenizers.whitespace(d.value);
    },queryTokenizer: Bloodhound.tokenizers.whitespace,
    limit: 100,
    remote: {
        url: 'http://www.domain.com/json.php?action=job_title&q=%QUERY'
    }
});

job_scopes.initialize();

$('#looking_for_job_titles').tagsinput('input').typeahead({
        itemValue: 'name'
    },
    {
        name: 'job_scope',
        displayKey: 'name',
        source: job_scopes.ttAdapter(),
        templates: {
            empty: [
                '<div class="empty-message">',
                'no results found',
                '</div>'
            ].join('\n'),
            suggestion: function(data){
                return '<p>'+ data.industry +'> <strong>' + data.name + '</strong></p>';
            }
        },
        engine: Hogan
    }).bind('typeahead:selected', $.proxy(function (obj, datum) {
        this.tagsinput('add', datum);
    }, $('#looking_for_job_titles')));

这很好用,并返回以逗号分隔的id列表,我将其保存到db。

我的问题是如何在页面刷新时将对象值预先填充回输入字段?该对象看起来像:

[{"id":"80001","name":"Account Manager"},{"id":"80251","name":"Projektant"}]

4 个答案:

答案 0 :(得分:14)

对于任何需要此人的人:

$.each(obj, function(index, value) {
    $('#looking_for_job_titles').tagsinput('add', value);
    console.log(value);
});

答案 1 :(得分:5)

检查方法here上的文档。

您可以使用:

$('input').tagsinput('add', 'some tag');

$('input').tagsinput('refresh');

答案 2 :(得分:0)

它应该是简单的,填充值=“”该输入的属性,但没有javascript。 如果以正确的格式值=“1,2,3”执行此操作,它将起作用

答案 3 :(得分:0)

所以它将是值=&#34; [{&#34; id&#34;:&#34; 80001&#34;,&#34; name&#34;:&#34;客户经理&#34;},{&#34; id&#34;: &#34; 80251&#34;&#34;名称&#34;:&#34; Projektant&#34;}]&#34;