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

Angular如何根据另一数字输入框的值动态生成多组表单字段

实现方案

你已经完成了基础的表单结构搭建,只需要补充数字输入框绑定的inputTotal方法即可实现自动增减字段组的效果,具体实现如下:

TS 代码补充

在你的组件类中添加以下inputTotal方法:

inputTotal(value: string): void {
  // 将输入值转为正整数,非法值默认取1
  const targetCount = parseInt(value, 10) || 1;
  // 最低保留1组字段,允许为空可修改此处最小值
  const finalCount = Math.max(targetCount, 1);
  const currentCount = this.passenger.length;

  if (finalCount > currentCount) {
    // 目标数量大于当前数量,补充对应差值的字段组
    const addCount = finalCount - currentCount;
    for (let i = 0; i < addCount; i++) {
      this.addPassenger();
    }
  } else if (finalCount < currentCount) {
    // 目标数量小于当前数量,从末尾删除对应差值的字段组
    const removeCount = currentCount - finalCount;
    for (let i = 0; i < removeCount; i++) {
      this.passenger.removeAt(this.passenger.length - 1);
    }
  }
}

可选优化点

  • 如果你希望输入完成、输入框失焦后才触发字段组更新,可以将输入框的(input)事件修改为(change)
  • 可以给输入框添加type="number"属性,进一步限制只能输入整数
  • 如果需要保留用户已填写的字段内容,可以在删除前判断待删除的表单组是否有值,添加确认提示避免误删

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 22:06:03