切换用户可以删除文本框中的文本与不删除文本的状态

时间:2018-10-15 22:07:15

标签: javascript jquery angular

我的应用程序中有一个复选框。当用户选中该复选框时,我需要在我的文本区域中填充无法删除的文本。他们可以添加到文本中,但不能将其删除。

因此,如果字符串为[Errno 2] No such file or directory: 'datasets/catsvdogstrain\\cat.0.jpg' ,我想将其添加到文本区域,它们不能删除,但只能添加名称。

但是,如果他们取消选中该复选框,则需要删除文本Hello my name is,并且只允许用户键入他们想要的任何内容。我正在努力的一部分,如果他们选中该复选框,然后再次取消选中该复选框,则他们可以输入...

这里是我所拥有的:

Hello my name is

但是这不起作用,因为当用户选中然后取消选中时,他们将无法再次键入。

我该如何解决?谢谢!

1 个答案:

答案 0 :(得分:2)

这是为您{@ 3}准备工作的闪电战

这是一个简单的示例,因此您可以清楚地看到正在发生的事情并可以复制任何相关的位。

代码如下:

import { Component, ViewChild } from '@angular/core';

const START = 'Hello my name is '

@Component({
  selector: 'my-app',
  templateUrl: './app.component.html',
  styleUrls: [ './app.component.css' ]
})
export class AppComponent  {
  checked = false;
  taContent = '';

  checkChanged() {
    if (this.checked) {
      this.taContent = START + this.taContent;
    } else {
      this.taContent = this.taContent.split(START)[1];
    }
  }

  taChanged(txt) {
    if (this.checked) {
      if (txt.startsWith(START)) this.taContent = txt;
      else {
        const tmp = this.taContent;
        this.taContent = '';
        setTimeout(() => {
          this.taContent = tmp;
        })
      }
    } else {
      this.taContent = txt;
    }
  }
}

HTML:

<br>
<input type="checkbox" [(ngModel)]="checked" (change)="checkChanged()">
<br>
<br>
<textarea [ngModel]="taContent" (ngModelChange)="taChanged($event)">
</textarea>