0

我使用 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 填充值?

仅供参考,我的表格如下所示:

<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> 
4

1 回答 1

1

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

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

this.item.number = 10;

如果您使用的是响应式表单,那么您可以这样做:

this.form.get('item.number').setValue(10);
于 2017-10-15T23:08:50.207 回答