如何将Bootstrap Tags输入字段中的标签存储到我的收藏中......?

时间:2015-10-09 22:40:57

标签: javascript meteor

我正在使用ajduke:bootstrap-tagsinput`包,我正在尝试将数组存储在:

$('#dealTags').tagsinput('items')

在我的交易集合中,但值为:

$(e.target).find('[name=dealTags]').val()

以未定义的形式返回。我是Meteor和Javascript的新手,很抱歉,如果这是一个愚蠢的问题。这是表单字段:

<div class ="controls">
        <input id="dealTags" type="text" class="form-control" value="" placeholder="Add some tags..." data-role="tagsinput">
</div>

在这里,我尝试将数据插入模板中的集合

var deal = {
      dealTitle: $(e.target).find('[name=dealTitle]').val(),
      venueName: $(e.target).find('[name=venueName]').val(),
      when: $(e.target).find('[name=when]').val(),
      dealTags: $(e.target).find('[name=dealTags]').val()
};

我的收集方法正在写入DB

Meteor.methods({
  dealInsert: function(dealAttributes) {
    check(Meteor.userId(), String);
    check(dealAttributes, {
      dealTitle: String,
      venueName: String,
      when: String,
      dealTags: String
});

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为您需要使用 select 元素而不是输入来使val()返回一个数组。 (见documentation

<div class ="controls">
    <select multiple id="dealTags" type="text" class="form-control" value="" placeholder="Add some tags..." data-role="tagsinput" />
</div>

另一个解决方案是继续使用输入元素,但是调用 .tagsinput(&#39; items&#39;)而不是 val()< / em>的

var deal = {
  dealTitle: $(e.target).find('[name=dealTitle]').val(),
  venueName: $(e.target).find('[name=venueName]').val(),
  when: $(e.target).find('[name=when]').val(),
  dealTags: $(e.target).find('[name=dealTags]').tagsinput('items')
};