如果沒有使用 Angular8 在輸入字段中進行編輯,如何禁用保存按鈕

布倫加拉吉尼

我正在使用 Angular8 應用程序,在此我使用 ngModel 添加了內聯編輯,但在此我必須禁用保存按鈕,如果輸入字段沒有變化,如果 3 個字段之間有任何變化,那麼保存按鈕應該是啟用。

HTML:

  <ng-container *ngFor="let contact of yearManagement">
      <tr>
        <td></td>
        <td class="text-capitalize">
          <ng-container *ngIf="editableRow !== contact.id; else newDeb">
            {{contact.policyTypeName}}
          </ng-container>
          <ng-template #newDeb>
            <input [(ngModel)]="contact.policyTypeName" />
          </ng-template>
        </td>
        <td>
          <ng-container *ngIf="editableRow !== contact.id; else newDeb1">
            {{contact.quotes}}
          </ng-container>
          <ng-template #newDeb1>
            <input [(ngModel)]="contact.quotes" (ngModelChange)="onModelChange(oldVal, $event); oldVal = $event;"/>
          </ng-template>
        </td>
        <td>
          <ng-container *ngIf="editableRow !== contact.id; else newDeb2">
            {{contact.policyCT}}
          </ng-container>
          <ng-template #newDeb2>
            <input [(ngModel)]="contact.policyCT" />
          </ng-template>
        </td>
        <td>
          <ng-container *ngIf="editableRow !== contact.id; else newDeb3">
            {{contact.writtenPremium}}
          </ng-container>
          <ng-template #newDeb3>
            <input [(ngModel)]="contact.writtenPremium" />
          </ng-template>
        </td>
        <td class="width125">
          <ng-container *ngIf="editableRow == contact.id;">
            <button class="btn btn-outline-primary btn-table" title="close"
            (click)="onCloseEvent(contact)"
           >close</button>
            <button class="btn btn-outline-primary btn-table" title="close" (click)="onSave(contact)" [disabled]="disableSubmit()"
              >save</button>
          </ng-container>
          <ng-container *ngIf="editableRow !== contact.id;">

            <button class="btn btn-outline-primary btn-table ml-1" title="Edit"
          (click)="[editableRow = contact.id,onEditEvent(contact)]">Edit</button>
          </ng-container>
          <button class="btn btn-outline-primary btn-table ml-1" title="Delete"
                      (click)="deleteCommitment(contact)">Delete</button>
        </td>
      </tr>
    </ng-container>

TS:

 public disableSubmit() {
    let disabled = true;
    const keys = Object.keys();
    keys.forEach(key => {
      if () {
        disabled = false;
        return;
      }
    });
    return disabled;
  }
  

演示

賽義德·侯賽努拉·薩達特

我試圖理解這個問題並做了一些修改,它確實按預期工作。

首先:定義一個名為 disabled 的布爾變量

selectedRow: any;
disable: boolean;
public onEditEvent(event) {
  this.disable = true;
  this.selectedRow = { ...event };
  this.editCommitment = event;
 }

第一次點擊edit時為true,並禁用保存按鈕。

第二次更改onChangeModel函數,檢查字段中的值是否改變,如果改變,重新激活保存按鈕,否則將被禁用。

oldValue: string;
onModelChange(oldval, event) {
 if (event) {
    this.disable = false;
    console.log(oldval, event);
    if (this.oldValue != event) {
    }
    this.oldValue = event;
  }
 }

最後在 getter 函數中返回有價值的禁用

public get disableSubmit() {
  return this.disable;
}

現在在保存按鈕上調用這個 getter 函數

       <button
          class="btn btn-outline-primary btn-table"
          title="close"
          (click)="onSave(contact)"
          [disabled]="disableSubmit"
        >
          save
        </button>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用angular8中的tileLoaded?

如果我们有更多记录而又没有使用angular8中断,如何更改下拉值

Angular8和带有嵌套字段的formControlName

如何使用 Angular8 检测输入的变化

如何使用 Angular8 编辑特定行内联编辑

如何使用Angular8动态创建Droplist项目?

如何使用Angular8创建WebOs SmarTV App?

当字段为空时如何使用 angular8 禁用按钮

如何在 Angular8 中创建具有匿名函数的类

如何使用Angular8 / Material在Mat-select中添加全选触发器

如何显示带有电子5和angular8的sqlite3的数据

angular8的dist文件夹中没有index.html

如何使用angular8在反应形式中使复选框值为真

如何使用angular8将动态对象数组分配给formgroup

使用angular8输入正确的输入值后如何消除验证错误

使用Angular8创建的示例应用程序未在IE11中呈现

在Angular8中使用管道和HttpService时简化API调用

如何使用引导程序将详细信息行置于 angular8 中编辑单击的行旁边

如果复选框为真且日期未在 angular8 中添加,如何抛出错误

如何使用angular8将嵌入式可编辑表格数据传递到服务中?

如何使用 Angular8 中的反應形式將數據與單獨的標頭綁定

Angular8表单输入字段已禁用

Angular8 / typescript-是否有更好的方法在.then()中而不是空对象块中返回Promise <void>

如何从数组中过滤数据并应用条件angular8

如何在Angular8中制作通用请求服务

如何在jspdf angular8中显示嵌套的Json

如何从 angular8 的 Oninit 会话中获取价值?

如何在angular8中导入请求选项

如何在angular8 js中在没有jQuery依赖的情况下支持IE8和IE9中的占位符属性?