Sie können es wie unten Code mit wenig Manipulation nach Ihrer Anforderung tun.
HTML-Code:
<div class="btn-group dropdown">
<input [id]="field.id" [formControlName]="field.id" type="text" disabled class="form-control dropdown-toggle">
<ul class="dropdown-menu">
<li class="active"><a class="dropdown-item" (click)="onDropdownSelect($event)">Action - 1</a></li>
<li><a class="dropdown-item" (click)="onDropdownSelect($event)">Another action</a></li>
<li><a class="dropdown-item" (click)="onDropdownSelect($event)">Something else here</a></li>
</ul>
<span role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" class="input-group-addon dropdown-toggle"><span class="caret"></span>
</span>
</div>
Angular Komponente:
onDropdownSelect(e) {
// This is to remove 'active' class from all li tags
$(e.target.parentElement.parentElement).find('li.active').removeClass(Constants.common.activeCssClass);
// This is to make form dirty when value selected
(this.form.controls[e.target.parentElement.parentElement.previousElementSibling.id] as FormControl).markAsDirty();
// This is to set selected value in textbox to update form in DOM
$(e.target.parentElement.parentElement.previousElementSibling).val($(e.target).text());
// This is to set css class to show value as selected
$(e.target.parentElement).addClass(Constants.common.activeCssClass);
}
Ausgang: werden Sie Ausgabe mit folgenden Code
console.log(this.form.value);
{"id": "Action - 1"}
Ich hoffe bekommen, das Sie lösen helfen können Ihr Problem.
Anstelle der Schaltfläche ''input type =" Schaltfläche verwenden "value =" "formControlName =" name ">'? – unitario