2015-12-23 31 views
1

我有一个JSP页面,其中包含一个搜索字段,并在其下有一个搜索结果表。当用户按下搜索按钮时,请求将通过java servlet进行处理,并且该页面将与表中返回的结果一起重新加载。搜索完成后,我需要页面在页面加载后向下滚动到表格。有条件的页面向下滚动

我研究这个话题,发现这个解决方案

onclick="document.getElementById('searchtable').scrollIntoView();" 

我把这个搜索按钮,它的工作原理,但按下按钮时,页面被重新加载,并重新加载页面的顶部,开始其是我的问题。

这是我

<div id="searchtable"> 
<table> 
<c:forEach items="${tableheader}"> 
<!-- search results go here --> 
</c:forEach> 

我在想什么做的是增加一个

<c:if test="${tableheader not equal null}">document.getElementById('searchtable').scrollIntoView();</c:if>

<c:forEach>,但我不知道如何正确地实现这一点。

任何帮助将是伟大的。

+0

被'onclick'分配给按钮的形式 – Ramanlfc

+0

是的,它是@Ramanlfc – develop1

+0

如果页面被重新加载并且生成了一个表格,那么你需要在表格的最后给出一个id和一个#标签,以带你到页面的那一部分。因此,这不是异步操作,那是需要做的。 – SoluableNonagon

回答

1

我假设这是一个普遍的JSP

<form onsubmit='getTable'> 
     <button type='submit'>Get Table</button> 
</form> 

所以当你点击,页面重新加载,和一张桌子突然存在,是否正确?

这可以固定JS像这样:

<script> 
     (function autoScroll(){ 
      document.getElementById('searchtable').scrollIntoView(); 
     })() 
</script> 

或者更确切地说,滚动表中,如果它包含行(用jQuery为便于)

<script> 
     (function autoScroll(){ 
      if($('#searchtable tbody tr').length > 0){ 
       document.getElementById('searchtable').scrollIntoView(); 
      } 
     })() 
</script> 
+0

您可以添加一个onready函数来确定dom是否准备就绪,但是应该由页面末尾添加的自动执行函数来覆盖 – SoluableNonagon