Jquery 动态字段未在ajax post上提交某些值

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

让我先说三件事:

0。这可能是实现我目标的一种糟糕的方式,但这是我能想到的最好的方式。话虽如此,我愿意接受任何关于清理下面代码的建议

一,。这个问题可能与没有绑定到DOM的对象有关

二,。我不知道那到底意味着什么。尽管花了无数个小时在谷歌上搜索WTF,DOM是否意味着

这是我的问题:当我发布下面所示的表单时,它从第一个表单中漏掉了一些值

我有一个表单如下所示:

<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>