You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过GET方法提交多个name相同、值不同的表单输入项

解决方法

方案1:使用数组格式name属性(最推荐)

这是表单提交多值字段的标准实现,只需将同名input的name属性末尾添加[]后缀即可,修改后的表单代码如下:

<form action="/gulv-finderen" method="get">
      <button disabled id="submitButton" class="btn">Send</button>
      <input disabled id="inputTaalerVand" type="hidden" name="pf_t_behov[]" value="Tåler vand" />
      <input disabled id="inputNemMontering" type="hidden" name="pf_t_behov[]" value="Nem montering" />
      <input type="hidden" name="pf_t_behov_and_condition" value="true" />
</form>

提交后生成的URL格式为:/gulv-finderen?pf_t_behov[]=Tåler+vand&pf_t_behov[]=Nem+montering&pf_t_behov_and_condition=true,几乎所有服务端开发框架都原生支持解析这种格式的参数,直接可以拿到包含所有选中值的数组。

注意:带disabled属性的输入框默认不会被提交,你所谓的「激活」操作需要先移除对应input的disabled属性,值才会被正常传递。

方案2:JS拦截提交手动构造URL(兼容特殊参数名要求)

如果你必须保留pf_t_behov作为参数名(不带[]后缀),可以拦截表单的submit事件,自己收集所有符合条件的字段值拼接目标URL再跳转,示例代码如下:

const form = document.querySelector('form[action="/gulv-finderen"]');
form.addEventListener('submit', function(e) {
  // 阻止默认提交行为
  e.preventDefault();
  // 收集所有非disabled的pf_t_behov值
  const behovValues = Array.from(document.querySelectorAll('input[name="pf_t_behov"]:not(:disabled)'))
    .map(input => `pf_t_behov=${encodeURIComponent(input.value)}`)
    .join('&');
  // 拼接其他固定参数
  const otherParams = 'pf_t_behov_and_condition=true';
  // 跳转目标地址
  window.location.href = `${form.action}?${behovValues}&${otherParams}`;
})

使用这个方案无需修改input的name属性,即可生成你预期的URL格式。

内容的提问来源于stack exchange,提问作者Casper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 14:24:01