【发布时间】:2021-01-10 20:48:37
【问题描述】:
我有这个 html:
<div
class="data__file"
v-for="(data, index) in paginatedData"
:key="index"
>
<label class="data__info" :for="data.idfile" @click="onClickWithShift($event, index)">
<img
:src="data.link"
alt=""
:class= "{ 'data__image' : 1 ,'data__image-active' : (data.checked === 1) }"
/>
<input
v-if="isManager === true"
type="checkbox"
class="data__access"
:value="data.idaccess"
:checked="(data.checked === 1) ? 1 : null"
v-model="checkedFilesPermission"
/>
<input
v-if="isManager === false"
type="checkbox"
class="data__access"
:value="data.idfile"
:checked="(data.checked === 1) ? 1 : null"
v-model="checkedFilesDownload"
/>
</label>
</div>
此代码生成复选框输入列表,然后我需要当用户单击带有 shift 的标签时(因为输入是 display:none),单击的输入之间的所有复选框都将被选中或取消选中,就像在此处使用 jquery 一样 How can I shift-select multiple checkboxes like GMail?
但我不知道如何获得它。
非常感谢用户 Spiky Chathu,我按照他说的做了,没有 v-model 也能正常工作,但是当我尝试使用 v-model 时,它不起作用。
这也是我的数据:
data() {
return {
isManager: this.$store.getters.isManager,
checkedFilesPermission: [],
checkedFilesDownload: [],
lastCheckedIdx: -1,
checkedCount: 0,
paginatedData: [
{"link":"images/2020/08/20200803.jpg","idfile":296,"idaccess":2},
{"link":"images/2020/08/20200807.jpg","idfile":6,"idaccess":99},
{"link":"images/2020/08/20200812.jpg","idfile":26,"idaccess":29},
{"link":"images/2020/08/202123.jpg","idfile":960,"idaccess":2919},
{"link":"images/2020/08/2020032.jpg","idfile":16,"idaccess":9339},
{"link":"images/2020/08/20200000.jpg","idfile":2,"idaccess":9},
]
};
我认为 VUE 以某种方式阻止输入 v-model 的主要问题
【问题讨论】:
标签: javascript vue.js