2017-09-29 84 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