2010-08-17 47 views
0

我正在提交一个页面onclick的表单元素,并需要一个函数在提交刷新页面后运行。我试图添加一个动画滚动回到提交的点击元素。我已经介绍了滚动部分,但是我似乎可以弄清楚如何在页面从提交中刷新后,让我为滚动编写的函数运行。如何在Javascript中向.submit()添加回调函数?

任何及时的帮助将不胜感激!

+0

您正在使用哪个服务器平台? – 2010-08-17 15:53:28

回答

0

如果你做了一个“真正的”表单提交,在实际的页面刷新的地方,你无法从客户端执行它(除了使用框架)。一旦你离开页面,你的JavaScript超出了范围。您需要将JavaScript插入到服务器上的刷新页面。

另一方面,如果您通过ajax提交表单并刷新页面的一部分,则根据您使用的框架,您将在您的应用程序中寻找像onSuccess等回调钩ajax提交功能

+0

感谢您的帮助!看起来像这块代码需要更新到AJAX。 – designerdre101 2010-08-18 14:37:49

2

如果您正在进行完整提交而不是AJAX提交,那么随后显示的页面与提交表单的页面不同。因此,点击元素的身份将不会在第二页上提供。

您需要做的是在提交处理程序期间,在窗体的隐藏字段中存储单击元素的标识(应该可能是某种唯一ID)。

当页面刷新时,它应该有可用的唯一ID(可能与服务器端代码放置在窗体的相同隐藏字段中),并且javascript函数可以读取该值来控制滚动。

这是否有意义?

如果您更新您的问题以包含一些示例代码,那么我可能会进一步澄清。

+0

谢谢!这为我清除了一些东西。此外,隐藏字段的想法是一个很好的想法,但由于页面正在提交或基本上刷新,那么刷新后该值是否会被重置? – designerdre101 2010-08-18 14:36:37

+0

隐藏字段的值设置在两个地方。首先,在客户端,这是为了确保相关信息包含在帖子中。 (即单击了哪个元素)第二个位置在服务器端,用于将点击元素的标识传递给响应页面,以便客户端代码可以滚动到该页面。 (服务器端可能会最初将隐藏字段设置为一个值(例如空字符串或零),表示没有元素被单击,并且不需要滚动。 – belugabob 2010-08-18 14:48:03

0

这在ajax中会更容易做到,但是如果您需要将它作为回发函数执行,那么您需要将一个事件附加到body load事件中,并将回送的数据发送回来,以确定页面已加载作为回发的一部分,而不是新的页面加载。

例如在网页上创建一个隐藏的控件并在回发中给它一个值,在回发检查上看看这个隐藏的控件是否有值,如果是的话运行你的scorll代码。

+0

Thanks!AJAX here here – designerdre101 2010-08-18 14:38:09

相关问题