我正在使用jQuery插件(tag-it),它会生成表单输入字段:
function create_choice (value){
var el = "";
el = "<li class=\"tagit-choice\">\n";
el += value + "\n";
el += "<a class=\"closetag\">x</a>\n";
el += "<input type=\"hidden\" style=\"display:none;\" value=\""+value+"\" name=\"item[tags][]\">\n";
el += "</li>\n";
var li_search_tags = this.tag_input.parent();
$(el).insertBefore (li_search_tags);
this.tag_input.val("");
}
上述函数生成的输入字段可以通过以下方式以HTML格式访问:
<ul id="mytags"></ul>
我可以通过PHP提交表单来访问tags数组:
$tags = $_POST['item']['tags'];
我可以使用jQuery .val()或其他方法获得上面没有$ _POST的数组吗?感谢。
答案 0 :(得分:1)
var elems = $('input[name="item[tags][]"]');
var array = new Array();
for (var i = 0; i < elems.length; i++) {
array.push($(elems[i]).val());
}
答案 1 :(得分:0)
要在客户端上检索标记,您可以执行以下操作:
var tags = [];
$('li.tagit-choice > input[type=hidden]').each( function() {
tags.push( $(this).val() );
});
或者,如果 - 在评论时 - 您只需要序列化表单中的值。
$('form').serialize();
也有效。
答案 2 :(得分:0)
serializeArray()似乎是为你想要做的而设计的。
http://api.jquery.com/serializeArray/
编辑:好的,您可以使用serializeArray(),但需要更多代码:
$.map($('#test').serializeArray(), function (n) {
if (n.name == 'item[tags][]') {
return n.value;
}
});