Jquery 如果未选中“聚焦在第一个”复选框,则设置“聚焦在第一个”复选框

Jquery 如果未选中“聚焦在第一个”复选框,则设置“聚焦在第一个”复选框,jquery,Jquery,我在javascript中这样做,如何在jquery中将焦点设置为第一个复选框 var chk = document.getElementsByName('program[]'); var len = chk.length; var checked = false; for(var i=0; i<len; i++) { if(chk[i].checked) { checked = true; break; } } if( !c

我在javascript中这样做,如何在jquery中将焦点设置为第一个复选框

var chk = document.getElementsByName('program[]');
var len = chk.length;
var checked = false;
for(var i=0; i<len; i++) {
     if(chk[i].checked) {
        checked = true;
        break;    
      } 
}
if( !checked ) {
    chk[0].focus();
    document.getElementById('errpgm').innerHTML = "Please select at 
            least one program";
    errcount++;
}
var chk=document.getElementsByName('program[]);
var len=chk.长度;
var检查=假;

对于(var i=0;i编辑):假设您希望在加载页面时集中注意力,则我的答案有效

更好地使用属性

一般来说,使用javascript自动设置焦点不是一个好主意,因为您必须等待要聚焦的元素加载到DOM中。但是如果您等待太久,那么用户可能已经聚焦了另一个输入,而您的焦点更改将非常烦人

$('input[type="checkbox"]').first().focus();

可能是这样(未经测试):


在没有jQuery的情况下,您已经可以集中精力了,而且它可以工作:(在Chrome和IE中测试)。 你的实际问题是什么

编辑那么,为什么要用jQuery做所有事情(也许只是用现有代码“focusFirstUncheckedCheckbox(name)”创建一个函数)

但你当然可以:


只需在第一个元素上设置“自动聚焦”属性?我不希望聚焦在第一个元素上,如果用户未选择任何选项,我希望聚焦在复选框上。虽然他/她可能一直在问X Y问题,但这是最佳解决方案。+1,这确实回答了目前的问题,但OP的代码检查复选框的事实将是ind它在事件(如表单提交)上运行,并且在页面加载时设置自动聚焦属性不是选项。请注意,
autofocus
在IE8或IE9中不起作用。()我想在jQuery中执行此操作更新我的答案以仅使用jQuery。
$('input[type="checkbox"]').eq(0).focus();  
$('input[type="checkbox"]:first').focus();
$('[type=checkbox]:first').focus();
if (!$('input[name^=program]:checked').length) {
    $('input[name^=program]')[0].focus();
}