gpt4 book ai didi

javascript - 检查 2 个框之间的一系列复选框

转载 作者:行者123 更新时间:2023-12-02 23:07:04 25 4
gpt4 key购买 nike

我有一个行表,每行都有一个复选框。我构建了一个函数来检测是否按下了 Shift 键,如果按下了,那么一旦选中了 2 个复选框,它将选中它们之间的框。

该功能在某种程度上有效,但由于某种原因,我必须选中第三个框才能勾选之间的框。

如何更改代码,以便它在第二次检查时选中复选框,而不必检查第三次?

提前致谢。

下面是我的代码。

Vue 数据:

data: () => ({
keycheck: false,
checkRows: []
})

创建:

created() {
window.addEventListener('keydown', e => {
if (e.keyCode === 16) {
this.keycheck = true
console.log('The shift key is being held down...')
}
})

window.addEventListener('keyup', e => {
if (e.keyCode === 16) {
console.log('Upper')
this.keycheck = false
this.checkRows = []
//console.clear();
}
})
},
methods: {
checkbox(key) {
if (this.keycheck) {
this.checkRows.push(key)

if (this.checkRows.length === 2) {
console.log(this.checkRows)

for (let i = this.checkRows[0]; i <= this.checkRows[1]; i++) {
let bData = this.displayed_array

bData[i]['rowCheck'] = true
console.log('test')
}
}
}
},
},

最佳答案

代码看起来没有什么问题。但是,现在如果您没有按住 Shift 键,则第一次点击不会注册在 checkRows 变量中。因此,您必须在第一次单击时按住 Shift 才能在两次单击后起作用。

if (this.keycheck) {
this.checkRows.push(key);

我在这个代码笔中复制了它:https://codepen.io/CodingDeer/pen/pozbadW

仅供引用,最好使用 this.checkRows.length = 0; 将数组设置为空,因为它不会复制数组。

关于javascript - 检查 2 个框之间的一系列复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57538196/

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