0

在我的应用程序中,我有一个 SelecOneMenu,它显示了一些如下所示的项目。

<h:selectOneMenu id="cmbInput" value="#{myBean.val}" required="true" requiredMessage="Some Message">
            <f:selectItem itemLabel="Please select" noSelectionOption="true" />
            <f:selectItems value="#{myBean.items}" />
            <f:ajax event="valueChange" render="myPanel"/>
            <f:ajax listener="#{myBean.myListener}"/>            
</h:selectOneMenu>

基本上,每当用户选择一个项目时,它都会在下面呈现一个面板,该面板有一些输入字段,如下所示..

<h:panelGroup id="myPanel" rendered="#{myBean.someFlag}">
   <h:inputText id="input1" value="#{myBean.someVal}" required="true">
</h:panelGroup>

并且有一个“下一步”按钮将用户带到下一页。

我面临的问题是,每当用户从下拉列表中选择某些内容并在面板呈现之前单击下一个按钮时,它都会将他带到下一页。但我想阻止它,因为该面板包含需要输入的字段,所以我想在这种情况下单击下一步时抛出验证错误。

4

2 回答 2

0

你能做的几件事是

  1. 显示正在加载... 图像,以便用户知道正在发生的事情。
  2. 您可以使用 jQuery Block Ui 插件和 Loading... 图像。
  3. 我怀疑 Javascript 验证会起作用,因为 html 元素在选择后不会立即出现,直到视图更新,并且在此窗口中用户可以单击下一步,您可以检查 html 元素的存在和您的 js 验证,或者您可以有服务器端验证。

希望这可以帮助.....

于 2012-07-20T05:05:58.633 回答
0

JQuery Validate 插件将是您的最佳选择。

于 2012-07-20T04:46:13.370 回答