我有一个复选框。如果我检查它,它将选择所有结果: HTML:
<input type="checkbox" id="selectallcheckbox" onClick="toggle(this)" />
和Javascript:
function toggle(source = false) {
if(!source)
{
var source = document.getElementById('selectallcheckbox');
}
checkboxes = document.getElementsByName('id[]');
for(var i=0, n=checkboxes.length;i<n;i++) {
checkboxes[i].checked = source.checked;
var id = checkboxes[i].id;
var res = id.replace("checkbox", "tr");
if(source.checked)
{
$('#' + res + '').addClass('selected');
} else {
$('#' + res + '').removeClass('selected');
}
}
}
现在,如果我在键盘上单击CTRL + A,我会尝试选择所有结果。这是我的JavaScript:
jQuery(document).keydown(function(e) {
if (e.ctrlKey) {
if (e.keyCode == 65 || e.keyCode == 97) { // 'A' or 'a'
e.preventDefault();
toggle();
}
}
});
但是这个功能不起作用。如何使ctrl + a选择所有结果
答案 0 :(得分:0)
我找到了解决方案:
jQuery(document).keydown(function(e) {
if (e.ctrlKey) {
if (e.keyCode == 65 || e.keyCode == 97) { // 'A' or 'a'
e.preventDefault();
document.getElementById("selectallcheckbox").click();
}
}
});
答案 1 :(得分:0)
切换功能需要参数或什么都不需要。当没有传递参数时,参数本身可以直接从dom获得。在html中,toggle函数获取this关键字。元素本身被传递。但是如果没有传递参数,则参数是未定义的,因此可以动态计算:
<input type="checkbox" id="selectallcheckbox" onClick="toggle(this)"/>
在切换功能中尝试更改:
function toggle(source = false) {
if(!source)
{
var source = document.getElementById('selectallcheckbox');
}
...........
为:
function toggle(source) {
if (source === undefined) {
source = document.getElementById('selectallcheckbox');
}
最后,在你的jQuery(文档).keydown(function(e){更改为:
jQuery(document).keydown(function(e) {
if (e.ctrlKey) {
if (e.keyCode == 65 || e.keyCode == 97) { // 'A' or 'a'
e.preventDefault();
// get the argument to the toggle function
var eleObj = document.getElementById('selectallcheckbox');
// toggle the checkbox status
eleObj.checked = !eleObj.checked;
// call the toggle function with the correct argument
toggle(eleObj);
}
}
});