2

我在我的应用程序中使用 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。

知道如何解决吗?

4

2 回答 2

2

您需要挂钩按钮的onclick处理程序,以便能够通过返回truefalse相应地阻止按钮的默认操作。一旦ajax请求被执行,阻止它已经太迟了。

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

<h:commandButton ... onclick="return confirm('Are you sure?')">
    <f:ajax execute="@this" render="styleCcFormtyleCcTable" />
</h:commandButton>
于 2012-05-29T23:00:29.563 回答
0

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

我所做的是:

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

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

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

只是。2 天这样做 oO 如果你们需要代码,请告诉我。

于 2012-06-05T23:51:21.073 回答