【问题标题】:angular 2 - radio button two way binding, get values in a hidden elementangular 2 - 单选按钮双向绑定,获取隐藏元素中的值
【发布时间】:2018-05-06 08:21:53
【问题描述】:

Plunker link

我正在从 JSON 加载表单。

我在以下问题上需要帮助。

问题:点击保存按钮时,我需要获取单选按钮值 truefalse

但现在我将两个单选按钮值都设置为“控制台中的 true

用户可以点击这两个按钮,因为它是一个单选组,我需要一个值为真,另一个值为假,反之亦然

{name: "rado 1", type: "radio", id: "rOne", checked: true}
{name: "radio 2", type: "radio", id: "rTwo", checked: true}

我的组件 HTML 代码

<div class="col-md-12  pb-2 pt-4">
  <form class="form-horizontal">


  <div *ngFor="let record of records"> 
  <div *ngFor="let radioButton of record.wrapper">

      <label>

        //hidden element 
        <input  type="hidden" name="{{radioButton.id}}" [(ngModel)]="radioButton.checked">

        <input 

        name="radiogroup" 

        type="radio" 

        id="{{radioButton.id}}"

        [checked]="radioButton.checked" 

        (change)="radioButton.checked = $event.target.checked" 

        [value]="radioButton.checked" 
                > 
                {{radioButton.name}}  
      </label>

  </div>
  </div>

<button class=" btn btn-primary " href="# " (click)="save() ">Save</button>

</form>
</div>`

预期:我需要单选按钮的值为真或假,反之亦然,不能同时为真或假。

  • 值应发送到隐藏变量。
  • 双向绑定

我的 Json(我有非常复杂的 json,但这里让它变得简单)

[
  {
    "wrapper": [
          {
            "name": "rado 1",
            "type": "radio",
            "id": "rOne",
            "checked": false
          },
          {
            "name": "radio 2",
            "type": "radio",
            "id": "rTwo",
            "checked": false
          }
    ]
  }
]

【问题讨论】:

    标签: javascript angular2-forms radio-group two-way-binding


    【解决方案1】:

    已编辑

      <label>
        <input 
    
        name="radiogroup" 
    
        type="radio" 
    
        id="{{radioButton.id}}"
        [value] = "radioButton.id"
        [(ngModel)]="selectedRadioId" > 
                {{radioButton.name}}  
      </label>
    

    ts:

     // On click of save button show console log with values
      save(): void {
        this.records[0].wrapper.forEach((wrapper)=>{
          wrapper.checked = wrapper.id == this.selectedRadioId;
        })
        console.log(this.records[0].wrapper[0]);
        console.log(this.records[0].wrapper[1]);
      }
    

    Plunker

    【讨论】:

    猜你喜欢
    • 2015-12-16
    • 2017-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-10
    • 2018-03-20
    • 1970-01-01
    • 2017-01-16
    相关资源
    最近更新 更多