Jquery 动态字段未在ajax post上提交某些值
让我先说三件事: 0。这可能是实现我目标的一种糟糕的方式,但这是我能想到的最好的方式。话虽如此,我愿意接受任何关于清理下面代码的建议 一,。这个问题可能与没有绑定到DOM的对象有关 二,。我不知道那到底意味着什么。尽管花了无数个小时在谷歌上搜索WTF,DOM是否意味着 这是我的问题:当我发布下面所示的表单时,它从第一个表单中漏掉了一些值 我有一个表单如下所示:Jquery 动态字段未在ajax post上提交某些值,jquery,ajax,jquery-ui-autocomplete,Jquery,Ajax,Jquery Ui Autocomplete,让我先说三件事: 0。这可能是实现我目标的一种糟糕的方式,但这是我能想到的最好的方式。话虽如此,我愿意接受任何关于清理下面代码的建议 一,。这个问题可能与没有绑定到DOM的对象有关 二,。我不知道那到底意味着什么。尽管花了无数个小时在谷歌上搜索WTF,DOM是否意味着 这是我的问题:当我发布下面所示的表单时,它从第一个表单中漏掉了一些值 我有一个表单如下所示: <div class="col-md-8" id="hoursdetailsdiv"> <form id="h
<div class="col-md-8" id="hoursdetailsdiv">
<form id="hoursdetails_1" class="form-inline totalform" role="form" >
<div class="form-group">
<input type="hidden" class="form-control" id="ps_serial_pk_1" placeholder="serial pk" readonly>
<input type="hidden" class="form-control" id="placeholder_employee_1" name="placeholder_employee_1" placeholder="employee_fk" readonly>
<input type="hidden" class="form-control" id="placeholder_date_1" name="placeholder_date_1" placeholder="date from top" readonly>
<input type="hidden" class="form-control" id="ps_function_pk_1" name="ps_function_pk_1" placeholder="ps_function_pk_1" readonly>
</div>
<div class="form-group">
<input type="text" class="form-control" id="ps_serialNumber_1" placeholder="serial or job number" required>
<input type="text" class="form-control" id="ps_model_1" tabindex="-1" placeholder="Model" readonly required>
<input type="text" class="form-control" id="daps_hours_1" name="daps_hours_1" placeholder="Hours" required>
<input type="text" class="form-control" id="ps_function_1" placeholder="Function" required>
</div>
</form>
</div><!--/hoursdetails-->
<button type="button" id="addbutton" name="addbutton"class="btn btn-default">Add Row</button>
<button type="button" id="submitForm" name="submitForm" class="btn btn-warning" >Submit Entry</button>
在克隆函数injectNewLookup末尾调用的函数在这里。在玩了一些之后,我发现为了让新的自动完成字段正常工作,我需要这样做
function injectNewLookup(curID){
//rebind events to dynamic elements
$('#ps_serialNumber_'+curID).autocomplete({
source: "mysql_lookups/p_lookup.php",
autoFocus: true,
minLength: 4,
select: function(event, ui) {
$('#ps_serialNumber_'+curID).val(ui.item.ord_no);
$('#ps_model_'+curID).val(ui.item.plant_name);
$('#ps_serial_pk_'+curID).val(ui.item.ps_fk);
}
});
$("#ps_function_"+curID).autocomplete(
{
source: "mysql_lookups/f_lookup.php",
autoFocus: true,
minLength: 2,
select: function(event, ui) {
$('#ps_function_'+curID).val(ui.item.item_no);
$('#ps_function_pk_'+curID).val(ui.item.function_pk);
}
});
}
一切正常,除了当我提交表单时,它遗漏了第一个表单中的一些值
以下是console.log的结果
placeholder_employee_1=&placeholder_date_1=&ps_function_pk_1=&daps_hours_1=
ps_serial_pk_2=&placeholder_employee_2=&placeholder_date_2=&ps_function_pk_2=&ps_serialNumber_2=&ps_model_2=&daps_hours_2=&ps_function_2=
我提交的表格带有以下代码:
$('#submitForm').on('click', function () {
$('Form[id^=hoursdetails_]').each(function () {
console.log($(this).serialize());
//post_form_data($(this).serialize());
});
});
function post_form_data(data) {
$.ajax({
type: 'POST',
url: 'submits.php',
data: data,
beforeSend: function(){//alert(data)
},
success: function (data, textStatus) {
//debugging use only
$("#target").append(data);
},
error: function () {}
});
}
总之,我的问题是:为什么第一个表单中的一些字段被从post字符串中删除?我该如何修复它
谢谢你的帮助 某些输入元素没有名称属性,因此无法提交。克隆时,克隆脚本将为其中的每一个设置名称,以使其适用于每个克隆的表单。缺少的字段必须为空
ps_serial_pk_1
ps_serialNumber_1
ps_model_1
ps_function_1
将您的表单代码更改为
<div class="col-md-8" id="hoursdetailsdiv">
<form id="hoursdetails_1" class="form-inline totalform" role="form" >
<div class="form-group">
<input type="hidden" class="form-control" id="ps_serial_pk_1" name="ps_serial_pk_1" placeholder="serial pk" readonly>
<input type="hidden" class="form-control" id="placeholder_employee_1" name="placeholder_employee_1" placeholder="employee_fk" readonly>
<input type="hidden" class="form-control" id="placeholder_date_1" name="placeholder_date_1" placeholder="date from top" readonly>
<input type="hidden" class="form-control" id="ps_function_pk_1" name="ps_function_pk_1" placeholder="ps_function_pk_1" readonly>
</div>
<div class="form-group">
<input type="text" class="form-control" id="ps_serialNumber_1" name="ps_serialNumber_1" placeholder="serial or job number" required>
<input type="text" class="form-control" id="ps_model_1" name="ps_model_1" tabindex="-1" placeholder="Model" readonly required>
<input type="text" class="form-control" id="daps_hours_1" name="daps_hours_1" placeholder="Hours" required>
<input type="text" class="form-control" id="ps_function_1" name="ps_function_1" placeholder="Function" required>
</div>
</form>
</div><!--/hoursdetails-->
<button type="button" id="addbutton" name="addbutton"class="btn btn-default">Add Row</button>
<button type="button" id="submitForm" name="submitForm" class="btn btn-warning" >Submit Entry</button>
那就行了!我现在觉得自己像个走狗。
<div class="col-md-8" id="hoursdetailsdiv">
<form id="hoursdetails_1" class="form-inline totalform" role="form" >
<div class="form-group">
<input type="hidden" class="form-control" id="ps_serial_pk_1" name="ps_serial_pk_1" placeholder="serial pk" readonly>
<input type="hidden" class="form-control" id="placeholder_employee_1" name="placeholder_employee_1" placeholder="employee_fk" readonly>
<input type="hidden" class="form-control" id="placeholder_date_1" name="placeholder_date_1" placeholder="date from top" readonly>
<input type="hidden" class="form-control" id="ps_function_pk_1" name="ps_function_pk_1" placeholder="ps_function_pk_1" readonly>
</div>
<div class="form-group">
<input type="text" class="form-control" id="ps_serialNumber_1" name="ps_serialNumber_1" placeholder="serial or job number" required>
<input type="text" class="form-control" id="ps_model_1" name="ps_model_1" tabindex="-1" placeholder="Model" readonly required>
<input type="text" class="form-control" id="daps_hours_1" name="daps_hours_1" placeholder="Hours" required>
<input type="text" class="form-control" id="ps_function_1" name="ps_function_1" placeholder="Function" required>
</div>
</form>
</div><!--/hoursdetails-->
<button type="button" id="addbutton" name="addbutton"class="btn btn-default">Add Row</button>
<button type="button" id="submitForm" name="submitForm" class="btn btn-warning" >Submit Entry</button>