我使用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>
答案 0 :(得分:1)
Angular和jQuery是不同的东西,Angular无法知道jQuery所做的更改,你不应该使用它,因为那是你使用Angular的。
如果您需要以编程方式更改值,则只需:
this.item.number = 10;
如果您使用的是Reactive Forms,那么您可以这样做:
this.form.get('item.number').setValue(10);