2017-10-15 50 views
0

我使用jquery以編程方式填充表單輸入字段值。這些值在表單中可見。當我提交表單數據時,該數據不包含這些值。當我手動修改值時,數據不包含的值:Angular 4 ngSubmit未從jquery填充的輸入中獲取值

我運行填充的輸入域的函數:

$('#itemNum').val('myNewValue'); 

即填充一個輸入像這樣:

<input type="text" [(ngModel)]="item.number" name="number" id="itemNumber" class="form-control"> 

我可以在輸入欄中看到這個新填充的值。如果我編輯該輸入,我可以在提交時獲得該值。但是,如果我離開它是,它僅返回組件定義的屬性:

export class MyComponent implements OnInit { 
    item: Item = { 
    number:0, 
    ... 
    } 
    onSubmit(value){ console.log(value) } 
} 

我怎樣才能得到ngForm/ngModel/ngSubmit看到這些jQuery的填充值?

僅供參考,我的形式如下:

<form novalidate #f="ngForm" (ngSubmit)="onSubmit(f)"> 
<input type="text" [(ngModel)]="item.number" name="number" id="itemNumber" class="form-control"> 
... 
<input type="submit" class="btn btn-primary" value="Confirm"> 
</form> 

回答

1

角和jQuery是不同的東西,有沒有辦法對角知道的jQuery,你不應該因爲這可以使用所做的更改的就是你」重新使用Angular for。

如果您需要以編程方式更改值,然後簡單地說:

this.item.number = 10; 

如果你使用無形式代替,那麼你會做這樣的:

this.form.get('item.number').setValue(10); 
+0

感謝基督徒,我來了意識到看到https://stackoverflow.com/a/17110709/4493441之後。我的挑戰是試圖從通過ngFor循環構建的表格行構建表單。我意識到這個表單只是重複工作,直接從表格行中直接運行我的提交函數,所有數據都是這樣。謝謝你的幫助! – edoras