【发布时间】:2023-03-07 20:18:01
【问题描述】:
我正在提交一个页面 onclick 表单元素,并且需要在提交刷新页面后运行一个函数。我正在尝试将动画滚动添加回导致提交的单击元素。我已经覆盖了滚动部分,但我似乎可以弄清楚如何使我为滚动编写的函数在提交页面刷新后运行。
任何及时的帮助将不胜感激!
【问题讨论】:
-
您使用的是哪个服务器平台?
标签: javascript jquery function callback
我正在提交一个页面 onclick 表单元素,并且需要在提交刷新页面后运行一个函数。我正在尝试将动画滚动添加回导致提交的单击元素。我已经覆盖了滚动部分,但我似乎可以弄清楚如何使我为滚动编写的函数在提交页面刷新后运行。
任何及时的帮助将不胜感激!
【问题讨论】:
标签: javascript jquery function callback
如果您正在执行完整提交,而不是 AJAX 提交,那么之后显示的页面与提交表单的页面不同。因此,被点击元素的身份将不会在第二页上显示。
您需要做的是,在提交处理程序期间,将被点击元素的身份(应该可能是某种唯一 ID)存储在表单的隐藏字段中。
当页面刷新时,它现在应该有可用的唯一 ID(可能由服务器端代码放置在表单的相同隐藏字段中),并且 javascript 函数可以读取此值来控制滚动。
这有意义吗?
如果您更新您的问题以包含一些示例代码,那么我可能会进一步澄清。
【讨论】:
如果您执行“真实”表单提交,实际页面会刷新,您无法从客户端执行此操作(使用框架除外)。离开页面后,您的 javascript 超出范围。您需要将 javascript 插入服务器上的刷新页面。
另一方面,如果您通过 ajax 提交表单并刷新页面的一部分,那么根据您使用的框架,您将在 ajax 中寻找像 onSuccess 等回调挂钩提交函数
【讨论】:
这在 ajax 中会更容易做到,但是如果您需要将其作为回发,那么您需要将一个事件附加到正文加载事件并使用回发发送一些数据,这些数据将识别页面已加载为回发的一部分,而不是新的页面加载。
例如在网页上创建一个隐藏控件并在回发时给它一个值,在回发时检查该隐藏控件是否有值,如果有,请运行您的 scorll 代码。
【讨论】: