【发布时间】:2022-01-17 20:04:43
【问题描述】:
我想创建一个带有选择框的多重过滤器列表,它已经用于创建选择计数。通过加载页面,可以预定义一些 selectedEvents(通过 GET 参数 + PHP 设置)。我已经在网上搜索了很多,但没有找到任何与 AlpineJS 类似的案例,如何将这些预定义的值设置为“已选择”。
在下面的示例中,我希望第一个选择了 ID 为 1000 的事件,第二个选择了 ID 为 1002 的事件。在这种情况下,第三个将没有选择。
有什么想法或建议吗? :)
<section class="panel" x-data='{
events: [
{ id: "1000", name: "My 1st cool event" },
{ id: "1001", name: "My 2nd cool event" },
{ id: "1002", name: "Just a better event" },
],
selectedEvents: [ 1000, 1002 ],
countFilter: 3
}
'>
<template x-for="_ in Array.from({ length: countFilter })">
<select name="event_id[]" required>
<option value="">Please choose</option>
<template x-for="event in events" :key="event.id">
<option :value="event.id" x-text="event.name"></option>
</template>
</select><br>
</template>
<button type="button" @click="countFilter++">Add selection</button>
<button type="button" @click="countFilter--" x-show="countFilter > 1">Remove selection</button>
</section>
【问题讨论】: