等待 JavaScript 光标

发布于 2024-12-04 12:49:06 字数 739 浏览 0 评论 0原文

我有一个 .jsp 页面,用户可以输入信息,然后使用保存按钮保存它。该应用程序可以运行,但由于按钮的单击事件正在运行 Java 代码,然后将保存的信息添加到 Oracle 数据库,因此需要一些时间才能完成保存。

我需要一种方法向用户显示等待光标,以便他们知道保存何时完成。但是,我不知道 .jsp 页面如何知道 Java 代码何时完成。

这是一个片段:

    function updateTrans() {
    document.body.style.cursor = 'wait';
    if (validateTrans()) {
      if(editform.cbFg.checked) {
        editform.Fg.value = "Y";
      }
      else {
        editform.Fg.value = "N";
      }
      editform.myaction.value = "updateTrans";
      editform.submit();
      document.body.style.cursor = 'default';
    }
  }

这不起作用。我猜 editform.submit(); 是异步发生的。

请帮忙。

编辑:editform 的目标是一个servlet。 编辑:servlet 是一个java 页面(HttpServlet),而不是网页。

I have a .jsp page that users can enter information and then save it with a save button. The application works, but because the click event of the button is running Java code, which then adds the saved information to an Oracle db, it takes a few moments before the save is complete.

I need a way to show the users a wait cursor so they will know when the save is complete. However, I can't figure out how the .jsp page will know when the Java code has completed.

Here is a snippet:

    function updateTrans() {
    document.body.style.cursor = 'wait';
    if (validateTrans()) {
      if(editform.cbFg.checked) {
        editform.Fg.value = "Y";
      }
      else {
        editform.Fg.value = "N";
      }
      editform.myaction.value = "updateTrans";
      editform.submit();
      document.body.style.cursor = 'default';
    }
  }

This does not work. I guess the editform.submit(); happens asynchronously.

Please help.

EDIT: The target of editform is a servlet.
EDIT: The servlet is a java page(HttpServlet), not a web page.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一抹微笑 2024-12-11 12:49:06

在这种情况下,表单的提交将执行浏览器的默认操作,并且您的页面将被刷新,对吗?

如果您使用一个 ajax 调用而不是提交页面,您可以控制流程。

In this case, the submit of the form will perform the default of browser and your page will be refreshed, correct?

If you use one ajax call instead of submiting the page you can control the flow.

南薇 2024-12-11 12:49:06

假设表单提交到的 servlet 与父页面位于同一域中,您可以

<script type="text/javascript">
    parent.document.body.style.cursor = 'default';`
</script>

从 servlet 输出 javascript:,以便在 servlet 响应时将光标切换回默认值。

然后您可以从当前脚本中删除该行:

document.body.style.cursor = 'default';

,因为您将让 servlet 处理将光标更改回来的情况。

Assuming the servlet that the form submits to is on the same domain as the parent page, you can output javascript:

<script type="text/javascript">
    parent.document.body.style.cursor = 'default';`
</script>

from your servlet, to switch the cursor back to default when the servlet responds.

Then you can just remove the line:

document.body.style.cursor = 'default';

From your current script, since you'll let the servlet handle changing the cursor back.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文