使用jQUery .val()访问$ _POST数组数据?

时间:2011-04-05 19:05:54

标签: jquery

我正在使用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的数组吗?感谢。

3 个答案:

答案 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;
  }
});