我有一个html表单,在页面加载后,单击按钮时会生成一些输入字段。所有输入都由标签包装。 单击按钮时生成的输入如下所示:
<div class="row t-a t-line" id="1">
<div class="col-md-1">
<input class="form-control" type="text" name="cod[]">
</div>
<div class="col-md-4">
<input class="form-control" type="text" name="piesa[]">
</div>
<div class="col-md-1">
<input class="form-control cantitate" type="number" name="cantitate[]" value="1">
</div>
</div>
下一个将具有ID 2,依此类推。我使用jQuery序列化
var form = $( this ).serialize();
但是,当我在控制台中以var形式登录时,除了动态生成的输入字段之外,所有值都在那里。 有什么想法吗?
提前谢谢!
更新: 是的,表格包装了所有输入字段
js代码:
$( document ).on( "submit","form", function( event ) {
event.preventDefault();
var form = $( this ).serialize();
form += '&action=update&id=<?php echo $id; ?>';
form += '&serie-produs='+$('#serie-produs').val();
form += '&Total='+$('#total-cu-TVA').val();
form += '&TotalFT='+totalFT.toFixed(2);
form += '&TotalT='+totalT.toFixed(2);
console.log(form);
var action = "assets/tickete-controller.php";
$.post(action, form, function(data){
console.log(data);
//$('.rezultat-filtre').html(data.produsItems);
if(data.type == "success"){
$("#message").removeClass('alert-danger');
$("#message").css('display', 'block');
$("#message").addClass('alert-success');
$('#rsponse-message').html(data.message);
$("#message").delay(4000).fadeOut("slow");
var link = data.linkPdf;
console.log(link);
window.open(link, '_blank');
}
},'json');
});
答案 0 :(得分:-2)
这是因为
var form = $( this ).serialize();
从最初在DOM中的元素中获取所有值。换句话说,您仅通过在开始时加载的HTML对象上使用“ READY”事件来获取这些元素的值。 要从动态添加的元素中获取值,您将必须为其添加事件监听器:
例如
$(document).on(<event_type>, <element_ID_or_other_selector>, function() {
...
<your_implementation>
});
这样,您将能够在指定事件中获取它们的值。
获取其值的另一种方法是使用
$('#your_element_ID').val();
每个动态元素