当前位置: 首页 > 知识库问答 >
问题:

使用角度反应窗体动态更改窗体字段的颜色

沙岳
2023-03-14
<form name="form" [formGroup]="form">
          <div class="form-group">
            <label for="firstName">First Name</label>
            <input type="text"  class="form-control" formControlName="firstName" [style.color]="getColor('firstName')" (input)="inputChanged($event)"/>
          </div>

          <div class="form-group">
            <label for="email">Email</label>
            <input type="text" class="form-control" formControlName="email" [style.color]="getColor('email')" (input)="inputChanged($event)" />
          </div>
          <div class="form-group">
            <label for="phone">phone</label>
            <input type="text" class="form-control" formControlName="phone" [style.color]="getColor('phone')" (input)="inputChanged($event)" />
          </div>

          <button class="btn btn-primary" (click)="setFormm()">click here</button>
        </form>
@Component({
  selector: "app-formreactive",
  templateUrl: "./formreactive.component.html",
  styleUrls: ["./formreactive.component.css"]
})
export class FormreactiveComponent {
  form = new FormGroup({
    firstName: new FormControl(""),
    email: new FormControl("")
  });

  getColor(frmctrl, color) {

  }

  inputChanged = (e: any) => {

  };

  setFormm = () => {
    this.form.controls['firstName'].setValue('vishnu');
    this.form.controls["email"].setValue("vishnu@hminds.com");
  };

共有1个答案

查锦程
2023-03-14

你可以让它“玩”ng-pristine和ng-dirty。看文件。所以,在您的。css中

input.ng-pristine
{
  color:red;
}
input.ng-dirty
{
  color:green
}

函数setForm中将所有控件标记为Pristine

setForm = () => {
    ....
    this.form.markAsPristine({ onlySelf:false }) 
  };

注意:如果输入为空,可以给出黑色光标

<input type="text"  class="form-control" formControlName="firstName" 
        [style.color]="!form.value.firstName?'black':null" />

 //and 
 <input type="text" class="form-control" formControlName="email" 
        [style.color]="!form.value.email?'black':null" />

我们的.css变成

input.ng-pristine.advice
{
  color:red;
}
input.ng-dirty.advice
{
  color:green
}

我们的输入像

<input type="text"  class="form-control advice" formControlName="firstName" 
                [style.color]="!form.value.firstName?'black':null" />
<input type="text" class="form-control advice" formControlName="email" 
               [style.color]="!form.value.email?'black':null" />

我更新了stackblitz

 类似资料:
  • 问题内容: 我正在使用AngularJS,并用于循环并在页面中显示详细信息。 是否可以根据该值更改字体颜色? 这里的值可以是Error,Warning或Ignored 。我可以通过angular或css为这些状态显示不同的字体颜色吗? 问题答案: 您可以使用以下代码实现此目的: 您的CSS类在哪里。 看到它在plunker。 查看有关ng-class的文档。

  • 假设我有一个包含16到20个字段的表单,包括输入类型文本和文本区域。 表单使用POST方法将字段提交到php页面,该页面使用$\u POST变量更新数据库中的表。 我的问题是我只想更新数据库中更改的值,而不是更新每个值, 这种优化应用程序的方法有多好?,我也在另一个网站上读到以下答案: mySQL会自动检测到您正在更新一个与它已经包含的值相同的字段,并且实际上不会更新该字段。不确定这是否与其他数据

  • 如果选择了一个深色主题,“运行”窗格(不是python的“控制台”,也不是PyCharm中可访问的“终端”)将显示一个非常深色的字体,以至于几乎看不到它。切换到一个轻主题,一切都很好。我在Pycharm、这里、Google和YouTube中找到了关于为编辑器、控制台和终端窗格设置字体颜色的帮助,但在更改运行窗格颜色方面没有任何帮助。有什么想法吗?

  • 我目前正在使用Xamarin形式的地图。对于这个例子,它工作得很好。https://developer.xamarin.com/guides/xamarin-forms/user-interface/map/ 现在我只需要更改Pin的颜色,下面的示例并不是我想要的,因为它对我来说有点过分了。 https://developer.xamarin.com/guides/xamarin-forms/ap

  • 新反应和工作在现有的项目。我想当选择元素更改(onInstrumentS选正确地称为),填补其他字段的形式与它的相关值,但不工作。我可以得到正确的数据(在console.log检查),但不能通过相关的新数据填充表单。 试答试答

  • 我有一个名为Ad的实体类,它包含如下字段 问题是当我试图使用这个实体创建表单时,横幅文本字段不显示(不呈现),只有标签。 我注意到字段的id是ad_banner如果我改变浏览器检查元素中的id,它将被显示... Symfony中ad_banner什么,为什么它隐藏它? 我不想改变字段的名称,也不想改变树枝上的id,因为我想保持简单,就像这样: 我试图从表单生成器更改字段的id,但没有成功。谢谢你!