【发布时间】:2018-01-19 13:03:18
【问题描述】:
我正在使用 p:inputSwitch 进行开关,它在一个对话框中。当表单内的 ajax 调用与 inputSwitch 上的更新结合发生时,inputSwitch 的行为很奇怪,并且总是重置其状态。这是一个简单的可重现示例(不需要支持 bean):
<h:form id="buttonForm">
<p:commandButton value="button" update="switch" oncomplete="PF('switchDialog').show();" />
<p:dialog widgetVar="switchDialog">
<p:inputSwitch id="switch" />
</p:dialog>
</h:form>
有趣的观察:
- 当您删除
h:form后,问题就消失了 - 当您删除
update参数时,它会起作用 - 当
p:inputSwitch在p:dialog之外时,它也可以工作
【问题讨论】:
-
请发
myView的代码b1或b2在做什么? -
我复制了您的示例,但我不知道您所说的“然后 p:inputSwitch 组件不起作用”是什么意思。你是什么意思?在您的示例中,由于
update,b1 对我有用,由于缺少update参数,b2 不起作用。请更简洁地说明什么不起作用,以及应该预期什么。 -
myView 中的函数什么也没做。还有代码:public void b1(){} public void b2(){}
-
这是我的错。我没有清楚地解释我的问题。在这个例子中,如果我点击名为“b1”的按钮,对话框显示,当我点击 inputSwitch 组件时,它改变了改回来(例如:在我单击它之前,它处于“on”状态,我单击该组件,它变为“off”状态并重新变为“on”状态),但在 b2 按钮中,它没有发生。我在 Firefox 中测试了很多次,还没有在 chrome 上测试。
-
我现在复制了您的问题。我使用Minimal, Complete, and Verifiable example 编辑了您的帖子 - 完成同行评审后,也许其他人可以帮助您。
标签: jsf primefaces