我用this example之后的复选框标签做了一个切换按钮.用户应该能够用他们的鼠标/touch 板和键盘来控制切换按钮.鼠标/touch 板控制运行良好,用户可以使用键盘上的Tab键聚焦/ Select 切换按钮.我想不出怎么按空格键和Enter键来切换按钮.
我搜索了Stack Overflow,并try 了使用输入和/或标签元素上的按键和按键事件的事件处理程序来触发toggleContent函数的解决方案.我还try 了一个在触发toggleContent函数之前判断Enter(13)键代码的解决方案.由于似乎什么都不起作用,我恢复到最后一个工作代码,该代码允许用户使用Tab键 Select 切换按钮,但不允许使用空格键或Enter键切换按钮.
这是我的HTML码:
<div>
<input type="checkbox" id="toggle" class="toggle" name="checkbox">
<label for="toggle" id="label" tabindex="0"></label>
</div>
这是我的JS:
const checkbox = document.getElementById("toggle");
const basic = document.getElementById("basic");
const professional = document.getElementById("professional");
const master = document.getElementById("master");
function toggleContent () {
if (this.checked) {
basic.innerHTML = "19.99";
professional.innerHTML = "24.99";
master.innerHTML = "39.99";
} else {
basic.innerHTML = "199.99";
professional.innerHTML = "249.99";
master.innerHTML = "399.99";
}
}
checkbox.addEventListener('change', toggleContent);
完整的代码和部署可以在here找到.
如何允许用户使用空格键和键盘上的Enter键与切换按钮交互?