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

如何将按钮与input输入框关联,点击时获取输入值存入数组?

你可以通过以下3种常用方案实现需求,按需选择即可:

  • 方案1:绑定表单submit事件(最推荐,天然支持回车提交,无需手动关联元素)
    HTML 代码调整如下:
<form id="tagForm">
  <label>
    Tags: <input type="text" name="todoTags" required>
    <button type="submit">Create new tag</button>
  </label>
</form>

JS 代码:

const userTags = [];
const tagForm = document.querySelector('#tagForm');

tagForm.addEventListener('submit', function(e) {
  // 阻止表单默认提交刷新页面的行为
  e.preventDefault();
  // 直接通过表单name属性获取输入值
  const inputVal = e.target.todoTags.value.trim();
  // 判空避免添加无效内容
  if (inputVal) {
    userTags.push(inputVal);
    // 提交后清空输入框优化体验
    e.target.todoTags.value = '';
  }
})
  • 方案2:给输入框加唯一ID,点击按钮时直接取值
    HTML 代码调整如下:
<label>
  Tags: <input type="text" name="todoTags" id="todoTagsInput">
  <button onclick="addTags()">Create new tag</button>
</label>

JS 代码:

const userTags = [];
function addTags() {
  const input = document.querySelector('#todoTagsInput');
  const inputVal = input.value.trim();
  if (inputVal) {
    userTags.push(inputVal);
    input.value = '';
  }
}
  • 方案3:无需加ID,通过事件源父元素查找输入框(适合元素动态生成的场景)
    HTML 代码调整如下:
<label>
  Tags: <input type="text" name="todoTags">
  <button onclick="addTags(event)">Create new tag</button>
</label>

JS 代码:

const userTags = [];
function addTags(event) {
  // 从按钮的父级label元素中查找对应输入框
  const input = event.target.parentElement.querySelector('input[name="todoTags"]');
  const inputVal = input.value.trim();
  if (inputVal) {
    userTags.push(inputVal);
    input.value = '';
  }
}

所有方案默认加了输入值去空格、判空的逻辑,不需要可以自行删除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 18:45:02