【问题标题】:How to get selected only single checkbox from multiple checkboxes using ionic 2 and angular2如何使用 ionic 2 和 angular2 从多个复选框中仅选择单个复选框
【发布时间】:2017-01-14 18:40:57
【问题描述】:

目前正在研究 ionic2 和 angular2 我有 7 个复选框的字段。我只需要选择一个特定的复选框,其余的复选框应该被禁用。同样,我还需要获得剩余的 6 个复选框。我怎样才能做到这一点, 这是我在 HTML 中使用的代码

// 付款.HTML

<ion-card class="ion-card">
        <ion-item>
            <ion-label>Cash On Delivery</ion-label>
            <ion-checkbox item-right checked="true" [(ngModel)]="checked"></ion-checkbox>
        </ion-item>

        <ion-item no-lines>
            <ion-label>PayuMoney Wallet</ion-label>
            <ion-checkbox item-right  checked="false" [(ngModel)]="checked"></ion-checkbox>
        </ion-item>

        <ion-item no-lines>
            <ion-label>Pay with Paytm Wallet</ion-label>
            <ion-checkbox item-right checked="false" [(ngModel)]="checked"></ion-checkbox>
        </ion-item>

        <ion-item no-lines>
            <ion-label>Credit/ Debit Card</ion-label>
            <ion-checkbox item-right checked="false" [(ngModel)]="checked"></ion-checkbox>
        </ion-item>

        <ion-item no-lines>
            <ion-label>Net Banking</ion-label>
            <ion-checkbox item-right checked="false" [(ngModel)]="checked"></ion-checkbox>
        </ion-item>

        <ion-item no-lines>
            <ion-label>PayZapp</ion-label>
            <ion-checkbox item-right checked="false" [(ngModel)]="checked"></ion-checkbox>
        </ion-item>

        <ion-item no-lines>
            <ion-label>Pay using MobiKwiK Wallet</ion-label>
            <ion-checkbox item-right checked="false" [(ngModel)]="checked"></ion-checkbox>
        </ion-item>

    </ion-card>

【问题讨论】:

    标签: checkbox angular typescript ionic2


    【解决方案1】:

    这可能会做你想要的(未测试):

    <ion-card class="ion-card">
      <ion-item *ngFor="let item of options; let i=index">
        <ion-label>{{item}}</ion-label>
        <ion-checkbox item-right [ngModel]="checkedIdx == i"(ngModelChange)="$event ? checkedIdx = i : checkedIdx = -1" [disabled]="checkedIdx >= 0 && checkedIdx != i"></ion-checkbox>
      </ion-item>
    </ion-card>
    
    class MyComponent {
      checkedIdx=0;
    
      options = [
        'Cash On Delivery',
        'PayuMoney Wallet',
        'Pay with Paytm Wallet',
        'Credit/ Debit Card',
        'Net Banking',
        'PayZapp',
        'Pay using MobiKwiK Wallet'
      ];
    }
    

    【讨论】:

    • 我试过了,我只需要选中一个复选框。如果我选择第一个复选框,则应禁用其余 6 个复选框。我该怎么做
    • 我不明白“同样,我还需要获取剩余的 6 个复选框”。单选按钮不是更适合您的用例吗?
    • 是的,你是对的,但我的要求是拥有复选框,我是 ionic 框架的新手。我认为每次单击复选框时都会调用一个功能是否还有其他选项很多功能
    • 此解决方案在第一次查看时显示启用第一个选项和禁用其他选项。如果您想在第一次查看时显示所有启用的框,只需更改 checkedIdx=0;到checkedIdx=-1; (经过测试和验证)
    猜你喜欢
    • 2015-11-30
    • 2021-04-11
    • 2014-10-07
    • 1970-01-01
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    相关资源
    最近更新 更多