分组复选框并有条件地显示输入字段
Grouping checkboxes and displaying input field conditionally
我的 Angular 应用程序中有以下表单,我想根据复选框选择显示不同的输入字段。
我已经使用 [(ngModel)] 绑定值并使用 *ngIf 我正在尝试 show/hide 下面的文本字段。这个工作得很好,但我无法将 'checked' 设置为 emailField。谁能告诉我我做错了什么。
默认情况下,我希望选中 emailField 并显示相应的输入字段。
<form class="reminder-form">
<div class="form-check">
<input [(ngModel)]="emailField" class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios1" value="option1" checked>
<label class="form-check-label" for="exampleRadios1">
Email
</label>
</div>
<div class="form-check">
<input [(ngModel)]="smsField" class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios2" value="option2">
<label class="form-check-label" for="exampleRadios2">
SMS
</label>
</div>
<div class="email-box" *ngIf='emailfield'>
<label class="form-check-label" for="noRemind">
Email
</label>
<input type="email" name="email" class="form-control new-reading-input" placeholder="{{accountEmail}}">
</div>
<div class="sms-box" *ngIf='smsField'>
<label class="form-check-label" for="noRemind">
SMS
</label>
<input type="number" name="sms" class="form-control new-reading-input" placeholder="{{accountSMS}}">
</div>
</form>
您需要 bind single variable 两个无线电输入:
app.component.html
<form class="reminder-form">
<div class="form-check">
<input [(ngModel)]="radioValue" class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios1" value="option1" checked>
<label class="form-check-label" for="exampleRadios1">
Email
</label>
</div>
<div class="form-check">
<input [(ngModel)]="radioValue" class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios2" value="option2">
<label class="form-check-label" for="exampleRadios2">
SMS
</label>
</div>
<div class="email-box" *ngIf='radioValue === "option1"'>
<label class="form-check-label" for="noRemind">
Email
</label>
<input type="email" name="email" class="form-control new-reading-input" placeholder="{{accountEmail}}">
</div>
<div class="sms-box" *ngIf='radioValue === "option2"'>
<label class="form-check-label" for="noRemind">
SMS
</label>
<input type="number" name="sms" class="form-control new-reading-input" placeholder="{{accountSMS}}">
</div>
</form>
app.component.ts
import { Component, VERSION } from "@angular/core";
@Component({
selector: "my-app",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.css"]
})
export class AppComponent {
name = "Angular " + VERSION.major;
accountEmail = "test@site.domain";
accountSMS = "sms";
radioValue = "option1";
}
我的 Angular 应用程序中有以下表单,我想根据复选框选择显示不同的输入字段。 我已经使用 [(ngModel)] 绑定值并使用 *ngIf 我正在尝试 show/hide 下面的文本字段。这个工作得很好,但我无法将 'checked' 设置为 emailField。谁能告诉我我做错了什么。
默认情况下,我希望选中 emailField 并显示相应的输入字段。
<form class="reminder-form">
<div class="form-check">
<input [(ngModel)]="emailField" class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios1" value="option1" checked>
<label class="form-check-label" for="exampleRadios1">
Email
</label>
</div>
<div class="form-check">
<input [(ngModel)]="smsField" class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios2" value="option2">
<label class="form-check-label" for="exampleRadios2">
SMS
</label>
</div>
<div class="email-box" *ngIf='emailfield'>
<label class="form-check-label" for="noRemind">
Email
</label>
<input type="email" name="email" class="form-control new-reading-input" placeholder="{{accountEmail}}">
</div>
<div class="sms-box" *ngIf='smsField'>
<label class="form-check-label" for="noRemind">
SMS
</label>
<input type="number" name="sms" class="form-control new-reading-input" placeholder="{{accountSMS}}">
</div>
</form>
您需要 bind single variable 两个无线电输入:
app.component.html
<form class="reminder-form">
<div class="form-check">
<input [(ngModel)]="radioValue" class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios1" value="option1" checked>
<label class="form-check-label" for="exampleRadios1">
Email
</label>
</div>
<div class="form-check">
<input [(ngModel)]="radioValue" class="form-check-input" type="radio" name="exampleRadios" id="exampleRadios2" value="option2">
<label class="form-check-label" for="exampleRadios2">
SMS
</label>
</div>
<div class="email-box" *ngIf='radioValue === "option1"'>
<label class="form-check-label" for="noRemind">
Email
</label>
<input type="email" name="email" class="form-control new-reading-input" placeholder="{{accountEmail}}">
</div>
<div class="sms-box" *ngIf='radioValue === "option2"'>
<label class="form-check-label" for="noRemind">
SMS
</label>
<input type="number" name="sms" class="form-control new-reading-input" placeholder="{{accountSMS}}">
</div>
</form>
app.component.ts
import { Component, VERSION } from "@angular/core";
@Component({
selector: "my-app",
templateUrl: "./app.component.html",
styleUrls: ["./app.component.css"]
})
export class AppComponent {
name = "Angular " + VERSION.major;
accountEmail = "test@site.domain";
accountSMS = "sms";
radioValue = "option1";
}