2010-06-14 186 views
4

我有一个网页,当用户在其中输入一些数据,然后点击提交按钮如何定位的页面。我处理数据,然后使用相同的Django模板显示原始数据,提交按钮和结果。当我使用Django模板显示结果时,我希望页面自动滚动到结果开始页面的那一部分。这样,如果用户想更改原始数据并再次点击提交,用户可以滚动备份页面。希望这样做有一些简单的方法,目前我看不到。Django的:使用Django模板

回答

11

如果在表格的操作方法提供fragment identifier它应该已工作:

<form method="post" action="/your/url#results"> 
    <!-- ... --> 
</form> 

及以下地方的形式,即要显示的结果:

<div id="results"> 
    <!-- your results here --> 
</div> 

这应该使页面跳转到<div>,ID为results

它是完整的客户端站点并没有涉及Django的,JavaScript或类似。

+0

嗨菲利克斯。我很好奇,如果表单不会在django视图中验证,会发生什么情况。我没有测试,但我认为页面将向下滚动,同时表单中有一些错误,并且没有要显示的数据。我对吗? – dzida 2010-06-14 10:02:38

+0

这很好。谢谢! @Dzida我只加了结果的div,如果有一定的效果,所以在一个错误的情况下,它不会滚动。 – FunLovinCoder 2010-06-14 10:06:48

+0

@Dzida,@swisstony:没错,如果没有与此ID的元素,什么都不会发生:) – 2010-06-14 10:07:40

1

您需要将数据包弄成这个样子:

<div id="some-id">YOUR DATA TO BE DISPLAYED</div> 

,如果你做重定向在你看来,你需要重定向到URL:/some-url/#some-id

,如果你不使你重定向需要使用JavaScript滚动到底部(但请注意,重定向是保存数据后在视图中使用的优先方式)。