我在表单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"
}
答案 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”的元素),但反映了这样一个事实,你可以使用它与返回多个元素的选择器。