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

Angular表单提交时控制器值为空问题排查及解决

Angular表单提交时userName值始终为空的解决方法

提交Angular表单时,表单控制器中的userName值始终为空字符串,排查后确认问题出在HTML模板的拼写错误上。

组件TS代码(register.component.ts)

export class RegisterComponent implements OnInit {
  constructor(
    private userService: UserService,
    private formBuilder: FormBuilder
  ) {}

  registerFormGroup: FormGroup;
  ngOnInit(): void {
    this.registerFormGroup = this.formBuilder.group(
      {
        userName: ['', [Validators.required]],
      },  
    );
  }

  submitted: boolean = false;
  async onSubmit(user: User) {
    this.submitted = true;
    debugger;

    if (this.registerFormGroup.invalid) return;

    const result: Create_User = await this.userService.create(user);
    if (result.succeeded) result.message, 'User registration successful.';
    else result.message, 'User registration not successful.';
  }
}

模板HTML代码(register.component.html)

<div class="register-form">
  <div class="register-form-box">
    <div class="register-form-header" class="form-group">
      <h2>Sign Up</h2>
    </div>
    <form [formGroup]="registerFormGroup" (ngSubmit)="onSubmit(registerFormGroup.value)">
      <div class="input-text">
        <input type="text" formControlerName='userName' class="form-control" id="userName"
          placeholder="Enter Username" [ngClass]="{'is-invalid': submitted}" />
      </div>
      <button type="submit">Submit</button>
    </form>
  </div>
</div>

问题原因

HTML模板中输入框的表单绑定指令拼写错误:将正确的formControlName误写为formControlerName,导致输入框无法与表单控制器中的userName字段建立绑定关系,因此提交时该字段值始终为空字符串。

修正后的HTML代码

将输入框的指令名称修正为正确的formControlName即可解决问题:

<div class="register-form">
  <div class="register-form-box">
    <div class="register-form-header" class="form-group">
      <h2>Sign Up</h2>
    </div>
    <form [formGroup]="registerFormGroup" (ngSubmit)="onSubmit(registerFormGroup.value)">
      <div class="input-text">
        <input type="text" formControlName='userName' class="form-control" id="userName"
          placeholder="Enter Username" [ngClass]="{'is-invalid': submitted}" />
      </div>
      <button type="submit">Submit</button>
    </form>
  </div>
</div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 12:30:23