html - 无法将html页面的表单值获取到打字稿页面角度6
问题描述
我的 Typescript 和 HTML 代码如下所示:
stateCtrl = new FormControl();
onSubmit(data) {
this.onNameSelect(name);
const deatails = JSON.stringify({
CampaignId: data.Campaign
});
this.webService.CallDetails(deatails)
.subscribe(
response => {
this.Model = response;
},
(error) => console.error(error)
);
}
<form (ngSubmit)="onSubmit(callform.value)" #callform="ngForm">
<div class="col-md-3 col-lg-3">
<mat-form-field>
<input matInput placeholder="Campaign" aria-label="State" name="Campaign" [matAutocomplete]="auto" [formControl]="stateCtrl">
<mat-autocomplete #auto="matAutocomplete">
<mat-option *ngFor="let state of filteredStates | async" [value]="state.Name">
<span>{{state.Name}}</span>
</mat-option>
</mat-autocomplete>
</mat-form-field>
</div>
</form>
现在的问题是当我提交表单时,我没有得到输入字段的值。谁能指出我哪里出错了?提前谢谢了。
这是我的控制台日志。
解决方案
因此,根据我在您的代码中阅读和理解的内容,您需要实现Reactive
表单,为此,您首先需要[formGroup]
表单级别。在您的 html 中:
<form [formGroup]="myFormGroup" (ngSubmit)="onSubmit(callform.value)" #callform="ngForm">
<div class="col-md-3 col-lg-3">
<mat-form-field>
<input matInput placeholder="Campaign" aria-label="State" name="Campaign" formControlName="stateCtrl">
</mat-form-field>
</div>
</form>
<button (click)="callform.onSubmit()"> Send
</button>
并在您的.ts
文件中:
import {Component} from '@angular/core';
import {FormBuilder, FormGroup} from '@angular/forms';
@Component({
selector: 'form-field-example',
templateUrl: 'form-field-example.html',
})
export class FormFieldExample {
myFormGroup: FormGroup;
constructor(fb: FormBuilder) {
this.myFormGroup = fb.group({
stateCtrl: '',
});
}
onSubmit(data){
console.log(data);
}
}
推荐阅读
- spring - 是否可以使用自定义 Spring 验证器来验证方法输入,就像 MVC 中控制器方法的输入一样?
- c# - 如何在没有 WPF 按钮单击的情况下更新线框?
- java - websocket连接上的“Access-Control-Allow-Origin”错误
- javascript - Cordova 未定义 加载后 file:///android_assets/file.html
- react-native - React Native fetch 返回 404 但邮递员执行 200 ok
- c++ - 解释 C++ 中的指针传递?
- c# - 使用 iTextSharp 生成的 pdf 中没有水平滚动条
- c# - 制作对象的整数列表
- python - odoo13中res.partner和res.user是什么关系?
- r - 如何在 Rstudio 中为新会话设置默认工作文件夹?