我必须验证表单中的字段不为空。
问题是form
位于JQueryUI dialog
(因为我不知道如何在JSF中创建" windows"所以当我点击commandButton
页面已刷新,JQuery对话框丢失。刷新后,我可以通过查看源代码看到页面代码中打印的错误消息。如果我在ajax
中使用commandButton
,那么页面不会刷新,但我不会打印信息,而是将其作为一种" Javascript警报"在浏览器中。
如何在不刷新页面的情况下收到错误消息?
<h:inputText value="#{myController.name}" id="myname" required="true" requiredMessage="Name required">
<f:ajax />
</h:inputText>
<h:message errorClass="..." for="myname" />
注意:This看起来与我的问题类似,但我认为解决方案不是我想要的。
注意:我没有使用像Primefaces等其他库
答案 0 :(得分:0)
通过评论的提示,我能够以这种方式解决它:
在commandButton
中,对ajax
和render
使用execute
(render
仅不起作用):
<h:commandButton id="...." action="#{myController.doSomething()}" type="submit" value="Do something">
<f:ajax execute="@form" render="@form" />
</h:commandButton>
在myController
中创建一个在myController.doSomething()
结束时调用的“pageUpdate()”方法。这样,在操作之后,页面将刷新并且对话框消失。当然还有其他方法可以关闭对话框,但是当对话框操作中没有错误时,我可以方便地更新页面,因此内存中的对象也会更新。
我认为在ajax调用返回错误后,JQuery对话框会混乱我的样式,所以如果你这样做,请检查一下。