2

我在 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++;
}
4

4 回答 4

5

编辑:假设您想在页面加载时集中注意力,我的回答是有效的

更好地使用autofocus属性。

一般来说,使用 javascript 自动设置焦点不是一个好主意,因为您必须等到您想要获得焦点的元素已加载到 DOM 中。但是如果你等得太久,那么用户可能会关注另一个输入,你的焦点变化会很烦人。

于 2013-11-01T23:43:50.107 回答
3

你已经在没有 jQuery 的情况下专注,它可以工作: http: //fiddle.jshell.net/Fxuv3/(在 Chrome 和 IE 中测试)。你的实际问题是什么?

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

但当然你可以: http: //fiddle.jshell.net/Fxuv3/1/

if (!$('input[name^=program]:checked').length) {
    $('input[name^=program]')[0].focus();
}
于 2013-11-01T23:50:36.683 回答
1
$('input[type="checkbox"]').first().focus();

或者

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

或者

$('input[type="checkbox"]:first').focus();
于 2013-11-01T23:44:10.657 回答
1

也许像这样(未测试):

$('[type=checkbox]:first').focus();
于 2013-11-01T23:44:32.400 回答