【发布时间】:2020-01-18 15:25:12
【问题描述】:
我在我的脚本中添加了一个键盘快捷键,这样当我按下ctrl + 1 时,第一个“源”无线电输入就会被检查:
if (e.key == "1" && e.ctrlKey) {
document.getElementsByName("source")[0].checked = true;
}
到目前为止,一切都很好。我添加了一个事件监听器,这样当我的无线电输入的状态发生变化时,就会发生几件事。但是当我按下ctrl+1 时,即使无线电输入的状态发生了变化,这个事件监听器也不会被触发(我可以看到输入的颜色发生了变化)。如果手动单击无线电输入,则事件侦听器正在工作:
var radiosource = document.getElementsByName("source");
for (var i = 0; i < radiosource.length; i++) {
radiosource[i].addEventListener('change', function (e) {
var input_changed_id = e.target.id;
if (input_changed_id.includes("en")) {
document.getElementById("fr_target").checked = true;
current_target = "fr";
}
if (input_changed_id.includes("fr")) {
document.getElementById("en_target").checked = true;
current_target = "en";
}
translate();
});
}
这是full 脚本(参见第 119 行和第 49 行和第 322 行)
【问题讨论】:
标签: javascript events input radio-button