我有一个使用 jQuery 的 .append() 方法动态生成的表单。 我可以添加任意数量的新输入、文本框、cmbbox 等...
但问题是,当我执行表单的 sumbit 时,PHP 目标不会收到添加的新输入,而只会收到连接到 append() 之前表单中已经存在的输入的变量。
有什么想法吗?
javascript:
$("#button").live('click',function add(){
$("#list").append(
'<li style="height:20px;">'
+'<input type="text" class="text" id="prova" name="prova[]" value="prova">'+
'</li>'
);
});
HTML:
<input type="submit" id="button" value="Add input">
<form name = "form" id="form" action="post.php" method="POST">
<ul style="width:670px;padding:0px 0px 30px 0px" id="list">
</ul>
<input type="submit" id="submit" value="Submit">
</form>
PHP:
<?php
print_r($_POST);
?>
最佳答案
问题 1:
您的#button
不应是submit
类型,因为您只想使用它来添加到表单而不是提交表单。所以你应该:
<input type="button" id="button" value="Add input">
问题2:
您正在覆盖您的变量。 name
是与表单一起发送的变量,因此每个 input
添加都必须有一个新名称,或者变量必须是一个数组。
此外,不能有多个具有相同 id
的元素。
解决这个问题的最简单方法是使用 prova[]
的形式使 prova
成为一个数组:
$("#button").live('click',function() {
$("#list").append(
'<li style="height:20px;">' +
// Removed repetitive ID and made prova an array
'<input type="text" class="text" name="prova[]" value="prova"></li>'
);
});
jsFiddle example
关于javascript - jQuery 不在 .append() 之后发布表单的所有输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3847492/