Angular 2: How to get the selected value from different options of a form?

此生再无相见时 提交于 2019-11-29 03:56:57

There is a way to get the value from different options. check this plunker

component.html

 <select class="form-control" #t (change)="callType(t.value)">
      <option *ngFor="#type of types" [value]="type">{{type}}</option>
    </select>

component.ts

this.types = [ 'type1', 'type2', 'type3' ];
   this.order = {
      type: 'type1'          
  };  

  callType(value){
    console.log(value);
    this.order.type=value;
  }
Jason

Been tackling this problem for a few hours.

Checked in the (incomplete) documentation to find an item in the NgSelectOption page called "ngValue"

Not sure if this is the intended use but it seemed to work fine.

So instead of using

[value]="item"

Use:

[ngValue]="item"

Just use ngModel on the select and ngModelChange event if you want to do something when it changes.

In fact I can't reproduce your problem. I created a plunkr with a very simple form with an input and a select. When I submit the form, I have actual values in the bound object. See this plunkr: https://plnkr.co/edit/5C3agW7QZfcrdt88QzSh?p=preview.

Feel free to tell me if I didn't correctly understand your problem.

Thierry

If you have static, hard-coded values for the select tag like below:

<select #quantity>
  <option value="one">1</option>
  <option value="two">2</option>
  <option value="three">3</option>
  <option value="four">4</option>
  <option value="five">5</option>
</select>

You can do the following:

@ViewChild('quantity') quantity: ElementRef;

console.log(this.quantity.nativeElement.value);  // will print value of the currently selected option
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!