gpt4 book ai didi

javascript - 使用 javascript 循环并提交多个表单,无需重新加载页面

转载 作者:行者123 更新时间:2023-12-02 21:36:03 25 4
gpt4 key购买 nike

我有一个包含大约 40 个表单的页面,按下“全部保存”按钮时都需要提交这些表单。问题是,当我尝试循环表单并提交它们时,仅提交第一个表单。我将如何重构它以便提交页面上的所有表单?我意识到这个问题之前已经被问过,并且可能的解决方案与 AJAX 有关,但我只是不确定如何实现这样的事情。

到目前为止我的 Javascript 看起来像这样:

function SaveAllForms() {
document.getElementById("SaveAll").innerText = "Processing..";
var forms = document.forms;
for (var f = 0, fLen = forms.length; f < fLen; f++) {
var form = forms[f];
form.submit();
}
window.location.reload();
}

所有的表格看起来都是这样的。我只包含其中一个,因为正如我所说,页面上大约有 40 个:

<form action="/FormSubmitLocation" method="post" name="Feed3">    <tr>

<td>
<input type="hidden" name="PREcost" value="3.027" />
<input type="hidden" name="PREtaxadd" value="4.5" />
1
<input id="Zone" name="Zone" type="hidden" value="1 " />
</td>
<td>
SomeZone
<input id="ZoneDescription" name="ZoneDescription" type="hidden" value="SomeZone" />
</td>
<td>
SomeCity
<input id="Rack" name="Rack" type="hidden" value="SomeCity" />
</td>
<td>
SomeProduct
<input id="ActualProduct" name="ActualProduct" type="hidden" value="SomeProduct" />
</td>
<td>
3.027
<input data-val="true" data-val-number="The field Cost must be a number." id="Cost" name="Cost" type="hidden" value="3.027" />
</td>
<td>
0.69
<input id="Tax" name="Tax" type="hidden" value="0.686488 " />
</td>
<td>
<input class="form-control" data-val="true" data-val-number="The field DMarkup must be a number." id="DMarkup" name="DMarkup" onchange="calcNewMarkup(this.value,&#39;PRE&#39;,&#39;Feed3&#39;);" onfocus="javascript:if (this.value!=&#39;&#39;){calcNewMarkup(this.value,&#39;PRE&#39;,&#39;Feed3&#39;)};" style="width: 70px;" type="text" value="69.58" />
</td>
<td>
<input Class="PREDretail form-control" id="DSell" name="DSell" onchange="calcNewMargin(this.value,&#39;PRE&#39;,&#39;Feed3&#39;);" style="width: 70px;" type="text" value="3.859 " />
</td>
<td>
<input class="form-control" data-val="true" data-val-number="The field RMarkup must be a number." id="RMarkup" name="RMarkup" onchange="calcNewMarkupRemote(this.value,&#39;PRE&#39;,&#39;Feed3&#39;);" onfocus="javascript:if (this.value!=&#39;&#39;){calcNewMarkupRemote(this.value,&#39;PRE&#39;,&#39;Feed3&#39;)};" style="width: 70px;" type="text" value="69.67" />
</td>
<td>
<input Class="PRERretail form-control" data-val="true" data-val-number="The field RSell must be a number." id="RSell" name="RSell" onchange="calcNewMarginRemote(this.value,&#39;PRE&#39;,&#39;Feed3&#39;);" onfocus="javascript:if (this.value!=&#39;&#39;){calcNewMarginRemote(this.value,&#39;PRE&#39;,&#39;Feed3&#39;)};" style="width: 70px;" type="text" value="3.8599" />
</td>
<td>
<small id="Update3">3/1/2020 7:57:00 PM</small>
<input data-val="true" data-val-date="The field DateUpdated must be a date." id="DateUpdated" name="DateUpdated" type="hidden" value="3/1/2020 7:57:00 PM" />
</td>
<td>
<input data-val="true" data-val-number="The field cpid must be a number." data-val-required="The cpid field is required." id="cpid" name="cpid" type="hidden" value="641" />
<input data-val="true" data-val-number="The field orpid must be a number." data-val-required="The orpid field is required." id="orpid" name="orpid" type="hidden" value="6" />
<button type="submit" class="btn btn-default" id="Feed3">Update</button>
</td>
</tr>

任何有关如何使其发挥作用的示例将不胜感激。

最佳答案

您甚至不需要 Ajax 请求的表单...这是一种发送数据的旧方法。

无论如何,您应该防止表单的默认行为:

form.preventDefault();

关于javascript - 使用 javascript 循环并提交多个表单,无需重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60493910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com