【问题标题】:Getting selected radio button value, on (ionChange) in radio-group , ionic2获取选定的单选按钮值,在 radio-group 的 (ionChange) 上, ionic2
【发布时间】:2017-01-20 19:37:13
【问题描述】:

我想在 Ionic2 的单选组中的 (ionChange) 事件上获取选定的单选按钮值。

我的 HTML 代码是

<ion-list radio-group *ngFor="let question of mcqData; let i= index;" (ionChange)="mcqAnswer(i)">
  <ion-list-header>
    {{question.questionText}}
  </ion-list-header>

  <ion-item>
    <ion-label>{{question.optionA}}</ion-label>
    <ion-radio  value="1"></ion-radio>
  </ion-item>

  <ion-item>
    <ion-label>{{question.optionB}}</ion-label>
    <ion-radio  value="2"></ion-radio>
  </ion-item>

  <ion-item>
    <ion-label>{{question.optionC}}</ion-label>
    <ion-radio  value="3"></ion-radio>
  </ion-item>

  <ion-item>
    <ion-label>{{question.optionD}}</ion-label>
    <ion-radio  value="4"></ion-radio>
  </ion-item>
</ion-list>

如何在 mcqQuesiton() on (ion-change) 上获得离子无线电值。

我在一个页面上有数字或单选组,因为它是一个选择题页面。

【问题讨论】:

    标签: ionic2


    【解决方案1】:

    有两种方法。一种是使用 ionSelect。下面是一个例子

      <ion-item >
        <ion-label><h2>You entered:</h2>
        </ion-label>
        <ion-radio color="success"  slot="start" [value]="enteredAddress" (ionSelect)="populateSuggestion($event)"></ion-radio>
      </ion-item>
    
      <ion-item>
        <ion-label><h2>Suggested Address:</h2>
        </ion-label>
        <ion-radio  color="success" slot="start" [value]="suggestedAddress" (ionSelect)="populateSuggestion($event)" ></ion-radio>
      </ion-item>
    
    </ion-radio-group>
    

    方式 2 是使用 ViewChild 访问本机 DOM 元素。 html: ts: @ViewChild('radio', { read: ElementRef, static: false }) radio: ElementRef;

    【讨论】:

      【解决方案2】:

      选择类别

         <ion-item *ngFor="let category of subcategories; let index=index;">
            <ion-label>{{category}}</ion-label>
            <ion-radio [value]="category"></ion-radio>
          </ion-item>
      

      在您的.ts 文件中:

      selectedValue($event){
        console.log($event);
      }
      

      【讨论】:

        【解决方案3】:

        您可以使用&lt;ion-radio&gt;ionSelect 事件来传递值。

        ...
          <ion-item>
            <ion-label>{{question.optionA}}</ion-label>
            <ion-radio  value="1" (ionSelect)="mcqAnswer(i,1)"></ion-radio>
          </ion-item>
          <ion-item>
            <ion-label>{{question.optionB}}</ion-label>
            <ion-radio  value="2" (ionSelect)="mcqAnswer(i,2)"></ion-radio>
          </ion-item>
        ...
        

        在您的打字稿 (.ts) 文件中,它将类似于

        mcqAnswer(questionID,answer){
        ...
        }
        

        【讨论】:

          【解决方案4】:

          您可以将 $event 传递给您的 onChange 方法。例如

          在您的 html 中:

          <ion-list radio-group *ngFor="let question of mcqData; let i= index;" (ionChange)="mcqAnswer($event)">
            <ion-list-header>
              {{question.questionText}}
            </ion-list-header>
          
            <ion-item>
              <ion-label>{{question.optionA}}</ion-label>
              <ion-radio  value="1"></ion-radio>
            </ion-item>
          
            <ion-item>
              <ion-label>{{question.optionB}}</ion-label>
              <ion-radio  value="2"></ion-radio>
            </ion-item>
          
            <ion-item>
              <ion-label>{{question.optionC}}</ion-label>
              <ion-radio  value="3"></ion-radio>
            </ion-item>
          
            <ion-item>
              <ion-label>{{question.optionD}}</ion-label>
              <ion-radio  value="4"></ion-radio>
            </ion-item>
          </ion-list>
          

          在你的打字稿中:

          function mcqAnswer(value)
          {
             console.log(value);
          }
          

          【讨论】:

          • sn-p 代码演示使用会更有帮助
          • 抱歉,我评论的时间太紧了。我现在会更新答案。
          猜你喜欢
          • 2017-11-23
          • 1970-01-01
          • 1970-01-01
          • 2019-10-31
          • 2017-04-05
          • 2016-08-30
          • 1970-01-01
          • 2018-03-25
          • 1970-01-01
          相关资源
          最近更新 更多