我正在使用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
});
谢谢!
答案 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')
};