gpt4 book ai didi

javascript - jQuery 不在 .append() 之后发布表单的所有输入

转载 作者:可可西里 更新时间:2023-11-01 02:44:13 25 4
gpt4 key购买 nike

我有一个使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com