gpt4 book ai didi

javascript - Angular 2 如何在选项中添加点击事件?

转载 作者:搜寻专家 更新时间:2023-11-01 05:28:35 24 4
gpt4 key购买 nike

这是我的 html,当我单击选项 "new-item" 时,它将打开 input type box ,然后我输入要添加的值以选择选项

<form (submit)="addItem()">
<input type="text" [(ngModel)]="add.name" name="name">
<input type="text" [(ngModel)]="add.price" name="price">
<input type="text" [(ngModel)]="add.description" name="description">
<select [(ngModel)]="add.type" name="room-type">
<option [value]="c">Select</option>
<option>BreakFast</option>
<option>Lunch</option>
<option>Dinner</option>
<option><button (click)="addSelect()">Add-item</button></option>
<input *ngIf='edited' type="text" >
</select>

我的 typescript 是

addSelect() {
this.edited = true;
}
constructor() {
this.edited = false;
}

最佳答案

您不能将此类事件添加到 <option> .

您可以看到该事件并未在所有浏览器中触发(它唯一适用的浏览器是 < ie11 和 Firefox):

$("#trig").click((event) => console.log(event));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select>
<option>default</option>
<option id="trig">trigger</option>
</select>

标签不会向下传播任何点击事件。因此,您尝试在选项内分配的任何点击事件都将不起作用。最好的办法是查看您在 onChange() 中收到的值回调,然后打开另一个允许用户输入数据的组件。你甚至可以使用 window.prompt()得到这样的数据。

您可以改为这样做:

<select (change)="onChange($event.target.value)">

onChange(val) {
console.log(val);
this.edited = false;
}

有关实现此方法的更多信息,请参阅:How can I get new selection in "select" in Angular 2?

关于javascript - Angular 2 如何在选项中添加点击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42241587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com