使用jQuery向隐藏字段添加多个值

时间:2016-02-01 12:42:32

标签: jquery

我在表单A中有一个隐藏字段。

<input type="hidden" name="item_name[]" id="item_name" />

我想在按钮点击时使用jQuery为此字段添加多个值。此值来自弹出窗口,只是将这些值添加到隐藏字段。

var name = $('#formid input[name=name1]').val();  
$("#item_name").val(name);

假设我添加了两次“a”和“b”的值 当我提交表单并在服务器端打印表单值时。我得到这个值

["item_name"]=>
array(1) {
[0]=>
string(2) "ab"
}

我应该如何继续获得这些值 -

 ["item_name"]=>
 array(2) {
 [0]=>
 string(1) "a",
 [1]=>
 string(1) "b"
 }

2 个答案:

答案 0 :(得分:1)

您需要2个具有相同名称item_name[]的隐藏输入才能使其正常工作。

或者你可以有这样的东西

if ($("#item_name").val() == '') {
    $("#item_name").val(name);
} else {
    var value = JSON.parse($("#item_name").val());
    $("#item_name").val(JSON.stringify(value.push(name)));
}

我还没有测试过它,但是使用JSON.stringify你可以在一个输入中发送一个数组。

答案 1 :(得分:1)

当用户点击该按钮时,您应该向表单添加另一个隐藏的输入,其中包含name="item_name[]"和您要添加的值:

$('#formid input[name=name1]').each(function(){
    var name = $(this).val();
    $("#item_name").after(
        "<input name='item_name[]' value="+name+" />"
    );
});  

这样,您可以添加多个值而不是两个。 在这种情况下循环可能是不必要的(如果你只有一个名为“name1”的元素),但反映了这样一个事实,你可以使用它与返回多个元素的选择器。