JS如何以同一班级名称提交所有表格

发布于 2025-02-11 10:16:51 字数 860 浏览 1 评论 0原文

我有3种具有相同类名称的表格,并想在单击一个主按钮时提交所有表格。我该怎么做。 (对JS的经验不多)

html

<form method="GET" id="form1" class="figure_filters">
    <label for="form1">Enter...</label>
    <input type="text" id="form1" name="form1">
</form>

<form method="GET" id="form2" class="figure_filters">
    <label for="form2">Enter...</label>
    <input type="text" id="form2" name="form2">
</form>

<form method="GET" id="form3" class="figure_filters">
    <label for="form3">Enter...</label>
    <input type="text" id="form3" name="form3">
</form>

<button id="master_button" onclick="submit_all_forms() "> Submit </button>

我的JS功能

function submit_all_forms() {
    document.getElementsByClassName("figure_filters").submit();
}

I have 3 forms with the same class name and would like to submit all of them when one master button is clicked. How would i go about doing this. (Not much experience with JS)

HTML

<form method="GET" id="form1" class="figure_filters">
    <label for="form1">Enter...</label>
    <input type="text" id="form1" name="form1">
</form>

<form method="GET" id="form2" class="figure_filters">
    <label for="form2">Enter...</label>
    <input type="text" id="form2" name="form2">
</form>

<form method="GET" id="form3" class="figure_filters">
    <label for="form3">Enter...</label>
    <input type="text" id="form3" name="form3">
</form>

<button id="master_button" onclick="submit_all_forms() "> Submit </button>

my JS function

function submit_all_forms() {
    document.getElementsByClassName("figure_filters").submit();
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

醉生梦死 2025-02-18 10:16:51

您需要以相同的类名来迭代所有元素。

document.getElementById('master_button').addEventListener('click', (e) => {
  e.preventDefault();
  const figureFilters = document.querySelectorAll('.figure_filters');
  for (let figureFilter of figureFilters) {
    figureFilter.addEventListener('submit', (e) => {
      e.preventDefault();
      console.log(`${figureFilter.id} is submitted`)
    });
    figureFilter.requestSubmit();
  }
});
<form method="GET" id="form1" class="figure_filters">
    <label for="form1">Enter...</label>
    <input type="text" id="form1" name="form1">
</form>

<form method="GET" id="form2" class="figure_filters">
    <label for="form2">Enter...</label>
    <input type="text" id="form2" name="form2">
</form>

<form method="GET" id="form3" class="figure_filters">
    <label for="form3">Enter...</label>
    <input type="text" id="form3" name="form3">
</form>

<button id="master_button"> Submit </button>

如果您的目标是使用e.preventDefault();,请注意,crumites()将无法使用。相反,您可以使用requestSubmit()

You need to iterate all elements with the same class name.

document.getElementById('master_button').addEventListener('click', (e) => {
  e.preventDefault();
  const figureFilters = document.querySelectorAll('.figure_filters');
  for (let figureFilter of figureFilters) {
    figureFilter.addEventListener('submit', (e) => {
      e.preventDefault();
      console.log(`${figureFilter.id} is submitted`)
    });
    figureFilter.requestSubmit();
  }
});
<form method="GET" id="form1" class="figure_filters">
    <label for="form1">Enter...</label>
    <input type="text" id="form1" name="form1">
</form>

<form method="GET" id="form2" class="figure_filters">
    <label for="form2">Enter...</label>
    <input type="text" id="form2" name="form2">
</form>

<form method="GET" id="form3" class="figure_filters">
    <label for="form3">Enter...</label>
    <input type="text" id="form3" name="form3">
</form>

<button id="master_button"> Submit </button>

If your goal is to use e.preventDefault();, please note that submit() will not work. Instead, you can use requestSubmit().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文