2017-09-29 83 views
-1

我有简单的输入不能得到输入离子值3

<input type="number" maxlength=1 id="1"/> 

和简单的JS在我的.ts文件

console.log(document.getElementById("1").value); 

,但我得到一个错误

Property 'value' does not exist on type 'HTMLElement' 
+0

它不建议设置编号。 –

+0

@MohamedAbbas它只是例如 – ItsMyLife

+0

它的错误,只使用科尔多瓦,因为因为你不想使用角 –

回答

1

那么首先你应该避免直接角,随后在离子,这是不好的性能,使你的代码少维护访问DOM的。

相反,你添加一个ngModel您输入元素:

<ion-input [(ngModel)]="myInput"></ion-input> 

和实例变量添加到您的.ts文件:

public myInput; 

ngModel变量将有你的输入字段的值。您可以通过例如添加ionChange事件侦听器添加到输入的更改记录到它:

<ion-input [(ngModel)]="myInput" (ionInput)="logChange($event)"></ion-input> 

而在你.ts文件中添加的方法吧:

logChange(event) { 
    console.log(event); 
} 
+0

我有4个输入,当我点击按钮时,我应该全部他们 – ItsMyLife

+0

然后,你必须添加一个'ngModel'给每个人,点击你的按钮,你就可以使用你定义的变量。 – David

0

您需要投射到HTMLInputElement(HtmlInputElement)。这是因为常规HTMLElements没有值属性。

console.log(<HTMLInputElement>document.getElementById("1").value); 

P.S.鉴于您使用的是Ionic 3,我假设您也使用Angular,并且有更好的方法来抓取dom元素,例如ViewChild

+0

它不适合我( – ItsMyLife

+0

在组件类中,你可以创建一个变量'val:HTMLInputElement;'但你可能需要导入HTMLInputElement类 – rjustin

0

由于您没有给出value属性输入number,您将得到未定义的属性。

要么在元素中定义属性,要么在事件发生时将其提取出来。

<input type="number" maxlength=1 id="1" /> 
 

 
<button onclick="bclick()">Click</button> 
 

 
<script> 
 

 
function bclick(){ 
 
    console.log(document.getElementById("1").value); 
 
} 
 
</script>

+0

我知道这段代码在浏览器中工作,但在我的离子应用程序中它不工作(。代码正在调用按钮提交。 – ItsMyLife