这似乎是一个简单的问题,但我在这里找不到答案,甚至使用谷歌。 (“javascript可以控制接受焦点”的第一个Google结果看起来很完美,但却是一个死链接。)
我有一个基本的下拉列表:
<select name="ddlScope" id="ddlScope">
<option value="-1"></option>
<option value="1">Global</option>
<option value="2">Public</option>
<option value="3">Private</option>
<option value="5">Admin</option>
</select>
当我进行验证时,如果值无效,我想将焦点设置到控件。但它在<tr>
中可能会或可能不会显示。如果<tr>
不可见,focus()
方法将失败:
var ddlScope = document.getElementById("ddlScope");
if (ddlScope.value == "0" || ddlScope.value == "-1")
{
ShowAlert("Please make a valid selection for Scope.");
ddlScope.focus();
return false;
}
我可以检查封闭<tr>
的可见性,但这会导致特定于页面的混乱黑客攻击。当我试图让它集中注意力之前,肯定有办法检查控件是否可以接受焦点?
更新:我最终放弃了,并完全删除了.focus()
。它不是一个足够互动的形式,用户会错过它。但我仍然非常好奇如何确定“可聚焦性”。