我在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++;
}
答案 0 :(得分:5)
修改:假设您想在页面加载时关注
,我的回答是有效的更好地使用autofocus
属性。
通常,使用javascript自动设置焦点不是一个好主意,因为您必须等到要聚焦的元素已加载到DOM。但是,如果你等待很多,那么用户可能会聚焦另一个输入,你的焦点变化会很烦人。
答案 1 :(得分: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();
}
答案 2 :(得分:1)
也许这样(未经测试):
$('[type=checkbox]:first').focus();
答案 3 :(得分:0)
$('input[type="checkbox"]').first().focus();
或
$('input[type="checkbox"]').eq(0).focus();
或
$('input[type="checkbox"]:first').focus();