2017-03-15 45 views
1

我有我这样的HTML。如何使用打字稿获取div内文本框的值?

<div id="series1"> 
    <div class="col-md-6"> 
     <label for="Mark">Mark</label> 
     <input type="text" id="mark" class="shortTextbox" (blur)="signalSelected('mark')" /> 
    </div> 
</div> 

我想获得在文本框中输入的标记值的值。这个html代码重复了我的按钮点击。每次点击该按钮时id都会更改为series2和series3等等。

目前打字稿文件我正在像价值

var val = (<HTMLInputElement>document.getElementById(selection)).value 

但是,这不会给我选择相应的系列ID值。可否请您提供如何让基于ID(系列1,系列2)商标价值...

+1

您正在使用Angular2,那么您为什么不使用绑定? –

回答

0

您可以使用ngModel

<input type="text" [(ngModel)]="myFieldInComponentClass" 

如果你有一个字段myFieldInComponentClass

class MyComponent { 
    myFieldInComponentClass:String; 

只要输入值发生变化(也相反),该字段将赋值。

你可以把它的getter/setter对改变执行代码

private _myFieldInComponentClass:String; 
    set myFieldInComponentClass(value :String) { 
    this._myFieldInComponentClass = value; 
    // other code 
    } 
    get myFieldInComponentClass() { 
    return this._myFieldInComponentClass; 
    } 
1

只是在你的input field和名称添加[(ngModel)]="mark", 你的HTML组件可能是这样的:

<div id="series1"> 
    <div class="col-md-6"> 
     <label for="Mark">Mark</label> 
      <input type="text" id="mark" class="shortTextbox" [(ngModel)]="mark" (blur)="signalSelected('Mark')" name="mark" /> 
     </div> 
</div> 

并在你的component.ts中定义一个变量,然后得到它是这样的值:

... 
mark: string; 

signalSelected (markVal: string){ 
    markVal = this.mark 
    console.log(markVal); // it is the value 
} 
+0

如果我通过signalSelected('Mark'),Mark是一个只是你在方法中分配的字符串值 – code1

+0

signalSelected(markVal:string){ markVal = this.mark – code1

+0

我试过like(blur)=“signalSelected事件)“,并在该方法中我得到的值为event.currentTarget.value。这工作。 – code1