从模式返回空字符串的输入中获取值

时间:2019-09-12 13:07:19

标签: jquery angular typescript

我在引导程序模式中使用ng-multiselect-dropdown,以便用户可以选择多个产品,并且在每个onItemSelect中,我都会使用jquery方法insertAfter()插入一个新的div,它将收到相应的金额所选产品的。 为此,我为每个以'p'开头的div创建一个新的ID,并向其中添加产品ID(idProduto),因此我可以将其onItemDeselect删除,并使用jquery的val()获取输入的值。

错误在于获取字段的值,它返回一个空字符串。

onItemSelect方法

onItemSelect(item: any){
    if (item){
      this.itemCompra = item;
      $('<div id="p'+this.itemCompra.idProduto+'" class="form-group"><label for="exampleFormControlInput1">Quantidade de '+this.itemCompra.nome+'</label><input id="p'+this.itemCompra.idProduto+'" class="form-control" formControlName="quantidade" type="number" min="1" [(ngModel)]="compra.quantidade'+this.itemCompra.idProduto+'" [ngClass]="{ '+!this.inv+' : submitted && f.quantidade.errors }"><div *ngIf="submitted && f.quantidade.errors" class="invalid-feedback"><div *ngIf="f.quantidade.errors.required">Escolha a quantidade</div></div></div>').insertAfter('#bodyCompra form>div:last');
      this.cont++;
    }
 } 

我正在尝试获取该值以在另一个函数中使用它。这是一个控制台日志,向您显示我如何尝试在for循环中获取值:

while(i<this.compra.ps.length){
  console.log($('#p'+this.compra.ps[i]["idProduto"]).val());
  //this.compra.ps[i]["quantidade"]=$('#p'+this.compra.ps[i]["idProduto"]).val();
  i++;
}

this.compra.ps是我使用[(ngModel)]

从模板中获取的数组

1 个答案:

答案 0 :(得分:0)

解决了!!!我有两个同名的id,这就是为什么val()返回空字符串的原因。我刚刚更改了第二个,现在工作正常。