【问题标题】:How to enable/disable an Ionic >=2 alert button if there are no input selections如果没有输入选择,如何启用/禁用 Ionic >=2 警报按钮
【发布时间】:2018-07-11 16:49:08
【问题描述】:

我有一个带有单选按钮选项的 Ionic 警报,并希望在用户做出选择之前禁用 OK 按钮。与this post 非常相似,只是我想对警报本身的操作执行此操作并能够更新按钮“启用”,所以我的设置如下

  import { AlertController } from 'ionic-angular';

    export class MessageService {
      constructor(private alertCtrl: AlertController) {
      }

      presentAlert() {
        let alert = this.alertCtrl.create();

        alert.addInput({
          type: 'radio',
          label: 'Option 1',
          value: 'value1',
          checked : false
        });

        alert.addInput({
          type: 'radio',
          label: 'Option 2',
          value: 'value2',
          checked : false
        });

        alert.addButton('Cancel');
        alert.addButton({
          text: 'Ok',

          handler: data => {

          }
        });
        alert.present();
      }
    }

我希望最初禁用“确定”按钮,但在用户做出选择后立即启用。由于 ion-select 也使用警报,因此能够在那里使用相同的东西会很好。

这可能吗/有没有简单的方法可以做到这一点?

提前感谢您的帮助。

【问题讨论】:

  • ionicframework.com/docs/api/components/alert/AlertController 这里,在buttons options 部分,有一个名为cssClass 的按钮选项属性。现在,在浏览器上,我发现如果你给一个按钮cursor: not-allowed,它就会有一个禁用的行为。对此不确定,但是,您可以尝试以编程方式将此属性分配给按钮来操作 css 类。此外,搜索是否可以通过 css 或 DOM 禁用/启用按钮。可以工作。
  • 你的按钮 .. 的 html 是什么?

标签: angular ionic-framework ionic2


【解决方案1】:

我可能会迟到,但这对我有用。

var bool=true;

然后在addInput中

disable:bool

我不知道为什么我必须这样做,但它确实有效。

【讨论】:

  • 对于按钮
【解决方案2】:

试试这个。

presentPrompt() {
    let alert = this.alertCtrl.create({
      title: 'Cancel Prompt',
      inputs: [
        {
          type:'radio',
          label:'Cancel for reason 1',
          value:'Cancel for reason 1'
        },
        {
            type:'radio',
            label:'Cancel for reason 2',
            value:'Cancel for reason 2'
        }
      ],
      buttons: [
        {
          text: 'Cancel',
          role: 'cancel',
          handler: data => {}
        },
        {
          text: 'OK',
          handler: data => {            
            if (data) {
              console.log(data          
            } else {
              this.presentAlert();
            }
          }
        }
      ]
    });
    alert.present();
  }

  private presentAlert() {
    let alert = this.alertCtrl.create({
      title: 'Validation select',
      subTitle: 'Please select',
      buttons: [{
                text:'Ok',
                handler:data=>{
                  this.presentPrompt();
                }
              }]
    });
    alert.present();
  }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 2018-02-25
    • 1970-01-01
    相关资源
    最近更新 更多