Javascript 在ajax上发送多个输入

Javascript 在ajax上发送多个输入,javascript,jquery,ajax,laravel,laravel-5,Javascript,Jquery,Ajax,Laravel,Laravel 5,我有一个表格,在那里我得到了一组记录,在出现之后如下所示: <input name="position" id="nameText" step-id="3" type="number" value="1" class="form-control stepinput"> <input name="position" id="nameText" step-id="4" type="number" value="2" class="form-control stepinput"

我有一个表格,在那里我得到了一组记录,在出现之后如下所示:

  <input name="position" id="nameText" step-id="3" type="number" value="1" class="form-control stepinput">

<input name="position" id="nameText" step-id="4" type="number" value="2" class="form-control stepinput">

<input name="position" id="nameText" step-id="5" type="number" value="3" class="form-control stepinput">

难以阅读,但如果我理解正确,请:

  • 有3个数字输入
  • 希望在数据库中更新输入的值
  • 使用“步骤id”标识要更新的步骤
如果是,则将步骤id=“”替换为数据步骤id=“”,代码为:

$("button.update-positions").on("click",function(event) {
    event.preventDefault();
    var form = $(this).closest(".steps-form");

    var map = {};
    $(".stepinput").each(function(index,value) {
        map[$(this).data("stepid")] = value.value;
    });
    console.log(map); // Your map object
});

不能有两个具有相同ID的元素,如果要传递这样的信息,则应使用数据属性。

不应对不同的元素使用相同的ID。您有3个具有相同ID和名称的不同输入。在做任何事情之前,都必须先解决这个问题一旦解决了输入问题,就可以使用jquery serialize,只需按原样序列化它,然后在服务器上以数组的形式接收
位置
值。不需要step-id。
$("button.update-positions").on("click",function(event) {
    event.preventDefault();
    var form = $(this).closest(".steps-form");

    var map = {};
    $(".stepinput").each(function(index,value) {
        map[$(this).data("stepid")] = value.value;
    });
    console.log(map); // Your map object
});