我的新任务是让 PrimeFaces<p:messages>在出现 5 秒后消失。我在 PF 的用户指南和他们的网页上都没有找到任何具体的设置。我想也许我可以绑定一个 JavaScript 事件来<p:messages>出现,但不知道从哪里开始。
我的消息在模板中:
<p:messages id="messages" globalOnly="true" autoUpdate="true" closable="true" rendered="#{not suppressMessages}" />
Run Code Online (Sandbox Code Playgroud)
并在 DOM 中渲染这样一个空<div>:
<div id="messages" class="ui-messages ui-widget" aria-live="polite"></div>
Run Code Online (Sandbox Code Playgroud)
并完整:
<div id="messages" class="ui-messages ui-widget" aria-live="polite">
<div class="ui-messages-info ui-corner-all">
<a class="ui-messages-close" onclick="$(this).parent().slideUp();return false;" href="#">
<span class="ui-messages-info-icon"></span>
<ul>
<li>
<span class="ui-messages-info-summary">Sample info message</span>
</li>
</ul>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
有谁知道 jQuery 或 Primefaces 特定的解决方案?
解决方案
我发现 jQuery 的组合<p:ajaxStatus>可以解决我的问题。我已经添加:
<p:ajaxStatus onstart="PF('statusDialog').show()" onsuccess="setTimeout(function() { $('.ui-messages').slideUp(); }, 5000); PF('statusDialog').hide();" />
Run Code Online (Sandbox Code Playgroud)
对于我的<p:ajaxStatus>和一些 …
如何使用Jquery或javascript获取选择组件值
MyJSF代码如下
<h:form>
<p:selectOneMenu style="width:150px" id="id" onchange="onCall()">
<f:selectItem itemLabel="Select" itemValue=""></f:selectItem>
<f:selectItem itemLabel="Other" itemValue="Other"></f:selectItem>
</p:selectOneMenu>
<p:selectBooleanCheckbox id="flag"/>
<p:inputText id="name" value="#{mybean.value}/>
</h:form>
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题
我有seleconeradio,例如:
<h:selectOneRadio value="#{myBean.selectedValue}" layout="pageDirection">
<f:selectItems value="#{myBean.myList}" var="a" itemValue="#{a}" itemLabel="#{a}"/>
</h:selectOneRadio>
Run Code Online (Sandbox Code Playgroud)
其中myList是整数列表,例如1,3,2,4.如果用户在myBean selectedValue中选择第二个元素(即3),那么我想得到selectItems项的索引.
我应该在f:selectItems itemValue标签中写什么?或者这是不可能的?
PS我可以通过创建一个新类来实现它,在该类中我有索引属性并创建该类的新列表,给出正确的索引.但这是非常糟糕的解决方案.