使用jQuery动态添加的表单字段不会提交给服务器

时间:2015-08-25 21:09:02

标签: javascript jquery html forms

我正在使用jQuery的append()向我的表单添加不确定数量的隐藏表单字段。当我添加一个时,代码如下所示:

jQuery是:

var teamName = "Dansk";
var newTeam = "<input type="hidden" name="tag" value="' + teamName + '">";
$('#team-display').append(newTeam);
运行这个后,HTML就像这样:

<div id="team-display">

</div>

所以这就是事情:如果我运行这个,并且我使用Chrome的检查器检查DOM,代码看起来很完美,正确的信息会进入HTML,它看起来像这样:

<input type="hidden" name="tag" value="Dansk">

但它传递的脚本只运行 phpinfo(),它回显传递给表单的POST变量,但它没有显示,然而 ,如果我将确切的表单字段复制并粘贴到正确空间的页面中而不通过jQuery添加它,它会执行POST。所以我知道我把它贴在正确的位置。

2 个答案:

答案 0 :(得分:1)

当你将元素作为字符串附加到DOM时,某些浏览器(如IE)响应不好(特别是对于表单,我已经有问题将选项附加到选择元素即),我建议尝试将其附加到而是一个jquery对象:

var teamName = "Dansk";
var newTeam = $("<input />", {type: 'hidden', name: 'tag', value: teamName});
$('#team-display').append(newTeam);

还要确保在表单中附加输入。

答案 1 :(得分:0)

嗯,我解决了这个问题 - 我在某个地方有我的FORM开场标签,但是/ FORM标签不在同一级别 - 稍后在DIV里面。奇怪的是,尽管如此,额外的输入(以及表单的其余部分)如果被硬编码到HTML中仍然有效,但是当由jQuery动态生成时,完全相同的额外输入不起作用