Javascript 异步返回

Javascript async return

本文关键字:返回 异步 Javascript      更新时间:2023-09-26

我在我的应用程序中使用了JSF ajax(我们不能更改=''),我们需要等待用户的操作。我的意思是,在调用 ajax 方法之前,我需要询问用户是否要使用自定义对话框还原页面中的所有更改。如果他想继续并恢复,我将通过ajax调用Java方法,但是如果没有,我们不需要调用ajax。

让我尝试更具体:

这是我的大页面的还原按钮的代码:

<h:commandButton value="#{msg.revertBtn}" accesskey="R" styleClass="actionButton" action="#{styleController.revertChanges}">
    <f:ajax execute="@this" onstart="return method();" render="styleCcFormtyleCcTable">
</h:commandButton>

在调用 ajax 之前,它将运行我的 javascript 函数:method()

我需要让用户卡在method(),直到他单击YesNow自定义确认对话框中的按钮,然后返回 true 或 false。

知道如何解决这个问题吗?

您需要

挂接按钮的onclick处理程序,以便能够通过在其中相应地返回truefalse来阻止按钮的默认操作。一旦 ajax 请求被执行,即阻止它已经太晚了。

下面是一个使用 JavaScript 内置confirm()函数的启动示例。

<h:commandButton ... onclick="return confirm('Are you sure?')">
    <f:ajax execute="@this" render="styleCcFormtyleCcTable" />
</h:commandButton>

我知道你们中的一些人不会同意我的观点,因为我做了一个巨大的解决方法来让它工作。

我所做的是:

我创建了一个自定义确认对话框,它有一个存储用户回复的变量。然后,每当用户单击按钮时,它都会存储在那里。

因此,在按钮中,我添加了一个单击函数来检查我的变量,如果它有任何回复,它会去做一些事情,但不是我调用我的自定义对话框。

在我的自定义对话框中,我正在"单击"按钮,但现在有了回复。之后,您需要确保擦除变量。

仅此而已。 2天做那个o.O让我知道你们是否需要代码。