这里我使用网络教程创建了标签。
JSFIDDLE:http://jsfiddle.net/karimkhan/A5TJh/1/
内部:
for (var i in tags){
tagString.push(tags[i].value);
}
如果我alert(tags[i])
它正确提醒。
但是当我在功能结束前使用tags
时,它会提醒undefined
。
我的目的是将所有tags
存储在一个数组中,并将此数组的POST推送到PHP
文件。但问题是我无法在数组中检索标签值。因为它已经在tags
数组中,我想我可以直接访问它。
答案 0 :(得分:0)
您需要1,2,3等值或tag1,tag2,tag3等标签名称?
使用tagString
instance.tagit({
tagSource: availableTags,
tagsChanged: function () {
//Get the tags
var tags = instance.tagit('tags');
var tagString = [];
//Pull out only value
for (var i in tags) {
tagString.push(tags[i].value);
}
someMethod(tagString);
//Put the tags into the input, joint by a ','
input.val(tagString.join(','));
function someMethod(tags) {
console.log(tags);
// call POST action
}
}
});
答案 1 :(得分:0)
我认为从DOM中检索值更容易,而不是尝试将它们存储在数组中。如果在创建数组时将它们存储在数组中,则必须密切关注更改,例如用户是否删除其中一个标记。
所以我会在用户执行提交操作时检索这些值。这些值存储在一个隐藏的无序列表中,每个都有一个.tagit-choice类,所以只需迭代列表并检索文本值:
<强> DEMO 强>
$('.tagit-choice').each(function () {
alert($(this).contents(':not(a)').text());
});
当然,您可以使用每种方法创建一个数组,一旦您准备好发布这样的数据:
tagsForPost = [];
$('.tagit-choice').each(function (i) {
tagObj = {value: i, label: $(this).contents(':not(a)').text()};
tagsForPost.push(tagObj);
});
console.log(tagsForPost);