10

我在页面中有一个表格,用于在特定舞台上注册各种娱乐节目。提交所有详细信息并单击提交按钮后,它应该检查特定日期该阶段是否存在程序。如果存在任何程序,则 div 应该显示现有程序的完整详细信息。我的问题是,如果存在任何程序,我需要将焦点放在新生成的 div 上(我的意思是 div 应该是可见的,不需要编辑)。我需要它,因为 div 是在 AJAX 的帮助下生成的,而且表单很长,所以用户看不到生成的 div,除非他/她向上滚动。注意:div 是在顶部位置创建的。提交表单后有什么方法可以使 div 部分可见

4

7 回答 7

17

通常,您不能聚焦 div。但是,如果您要为其添加一个 tabindex,它将起作用:

<div tabindex="0">test </div>

这是一个演示:

.z{margin-top:800px;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="button" onclick="$('.z')[0].focus()" value="test" />
<div>
    <div class="z" tabindex="0">test </div>
</div>

如果您单击测试按钮,div 应该会变得聚焦并跳转到视图中。点击我只是做类似的事情divElement.focus()

另一个选项只是滚动包含您新添加的 div 的区域,就像这里的其他答案一样。

于 2013-03-11T12:41:53.553 回答
9

您可以使用这样的代码跳转到 div

$(window).scrollTop($('#new_div').offset().top-20)
于 2013-03-11T12:39:42.860 回答
4

您可以使用以下命令滚动到页面顶部:

window.scrollTo(0,0);

或使用 jQuery 使用:

$('html,body').scrollTop(0);

或者有一些有趣的效果

$('html, body').animate({ scrollTop: 0 }, 'fast');
于 2013-03-11T12:39:01.860 回答
3

使用以下语句对我有用。

document.getElementById('id').scrollIntoView();
于 2013-03-11T12:46:31.927 回答
2
<input type="button" onclick="$('#c')[0].focus()" value="test focus" />
<div>
    <div id="c" tabindex="1" style="margin-top:800px;">testing</div>
</div>

jsfiddle 示例。

于 2013-03-11T13:34:03.410 回答
1

尝试window.scrollTop = #VALUE;

于 2013-03-11T12:38:22.737 回答
0
var selector = document.getElementById('YOUR_ID_SELECTOR');

if(typeof selector.scrollIntoView !== 'undefined' )
    selector.scrollIntoView();

方法“scrollIntoView”的基本版本支持 IE8+。

这是文档:https ://developer.mozilla.org/en-US/docs/Web/API/Element/scrollIntoView

于 2018-08-29T21:26:58.517 回答