我有一个表单,在提交时,不会发布动态添加的隐藏字段。
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后会添加到表单中。
答案 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;
});
}