Angular 4 ngSubmit没有从jquery填充的输入中获取值

时间:2017-10-15 14:56:22

标签: jquery angular ng-submit ngmodel

我使用jquery以编程方式填充表单输入字段值。值在表单中可见。当我在console.log上提交表单数据时,该数据不包含值。当我手动修改值时,数据确实包含值:

我运行一个填充输入字段的函数:

 $('#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填充值?

fyi,我的表格看起来像这样:

<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 个答案:

答案 0 :(得分:1)

Angular和jQuery是不同的东西,Angular无法知道jQuery所做的更改,你不应该使用它,因为那是你使用Angular的。

如果您需要以编程方式更改值,则只需:

this.item.number = 10;

如果您使用的是Reactive Forms,那么您可以这样做:

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