POST中缺少动态隐藏表单字段数据

时间:2014-06-10 18:42:29

标签: javascript php jquery html

我有一个表单,在提交时,不会发布动态添加的隐藏字段。

HTML:

<div>
<form action="thankyou.php" onsubmit="return validate()" id="orderform" method="post">
<input type="text" name="name" /><br>
<input type="text" name="email" required /><br>
<input type="text" name="charterco" required /><br>
<input type="text" name="bname" /><br>
<input type="text" name="dtime" required /><br>
<input type="submit" />
</form>
</div>

jquery的:

$('#orderform').submit(function(eventObj){
$('<input />').attr('type','hidden')
    .attr('id','list')
    .attr('name','shopList')
    .attr('value',sliststr>)
    .appendTo('#orderform');
return true;
});

来自Chrome DevTools的POST数据:

name:b
email:b@b.com
charterco:b
bname:b
dtime:12:00
message:Comment

我无法弄清楚出了什么问题。在我的jsfiddle here的小调试中,我的sliststr变量填满并正确。无论出于何种原因,它都不是POSTING。

编辑:正如@JayBlanchard在下面指出的那样,我在写完POST后会添加到表单中。

1 个答案:

答案 0 :(得分:0)

尝试附加动态元素,设置它的值,然后提交表单。否则它正在提交表单,然后在回调中附加html。

请尝试以下操作。

function validate(){
        var shoplist = [1,2,3];
        $('#orderform').append("<input type='text' name='shop' id='list'>")
        $('[name="shop"]').val(shoplist)
        $('#orderform').submit(function(eventObj){

        return true;
        });
}