动态创建的表单包含输入元素。首先的元素可能是被禁用或只读的。我尝试使用下面的代码将焦点设置到第一个可接受数据的元素,以便从键盘快速输入数据。但是如果表单第一个元素是禁用或只读的,焦点就无法设置。如何将焦点设置到第一个可接受数据的元素?
如何将焦点设置到可见、启用且非只读元素?
更新3
我尝试了Row W代码,其中添加了输入元素。现在它将焦点设置到第二个元素。测试用例显示在Rob W的答案修订版5中。
<form style='margin: 30px' id="Form" class='form-fields' method='post' target='_blank'
action='Report/Render'>
...
<input id='_submit' type='submit' value='Show report' class='button blue bigrounded' />
</form>
<script type="text/javascript">
$(function () {
var elements = $('#Form').find(':text,:radio,:checkbox,select,textarea');
elements[0].focus();
elements[0].select();
});
</script>
更新
还有隐藏的输入字段,抱歉。提供的答案将焦点设置到隐藏元素上。包含函数未找到任何元素。
以下是更新的测试用例:
$(function () {
$("#form :input:not([readonly='readonly']):not([disabled='disabled'])").first()
.focus();
});
如何将焦点设置到可见、启用且非只读元素?
更新3
我尝试了Row W代码,其中添加了输入元素。现在它将焦点设置到第二个元素。测试用例显示在Rob W的答案修订版5中。