首页 > 解决方案 > 如何在 keyPress 事件上更改 ionic alertController 中的输入值

问题描述

我有一个警报框来输入一个数字。如何限制用户输入负值 (-) 或者如果输入 -2,如何从数字中删除 -?

async updateBalance(): Promise<void> {
const alert = await this.alertController.create({
  header: 'Update Balance!',
  inputs: [
    {
      name: 'addAmount',
      type: 'number',
      id:'inputAmount',
      placeholder: 'Enter Amount'
    }
  ],
  buttons: [
    {
      text: 'Add',
      cssClass: 'secondary',
      handler: (data) => {
        this.calculateBalance(data, true);
      }
    }
  ]
});
alert.present();
alert.addEventListener('keypress', this.checkNegativeInput);
}
checkNegativeInput(e) {
  if(e.charCode !== 45) {
    document.getElementById('inputAmount')
  }
}

此代码正在检测事件,但我无法更改输入字段的值。

标签: angulartypescriptionic-frameworkdom-eventsandroid-alertdialog

解决方案


  async createAlert() {
    var alert = await this.alertController.create({
      header: 'Update Balance!',
      inputs: [
        {
          name: 'addAmount',
          type: 'number',
          id: 'inputAmount',
          placeholder: 'Enter Amount'
        }
      ],
      buttons: [
        {
          text: 'Add',
          cssClass: 'secondary',
          handler: (data) =>
            alert.inputs=[
              {
                name: 'addAmount',
                type: 'number',
                id: 'inputAmount',
                placeholder: 'Enter Amount',
                value: this.validateNumber(data.addAmount)
              }
            ]
            return false;
          }
        }
      ]
    });
    alert.present();
  }

这有效,但由于某种原因它只显示一次。第二次单击添加按钮时,输入数组不会更改。删除,return false;以便警报将关闭。我建议这样做:

  async createAlert() {
    var alert = await this.alertController.create({
      header: 'Update Balance!',
      inputs: [
        {
          name: 'addAmount',
          type: 'number',
          id: 'inputAmount',
          placeholder: 'Enter Amount'
        }
      ],
      buttons: [
        {
          text: 'Add',
          cssClass: 'secondary',
          handler: (data) =>
            alert.message="You can't enter negative numbers";
            return false;
          }
        }
      ]
    });
    alert.present();
  }

推荐阅读