目前,在 suggestioinField 组件中添加 ajax 渲染后,我遇到了 div 组件的问题,div 显示更改为无。即使在渲染到操作后,如何使其页面保持在同一页面中。
这是我用来隐藏和显示除法的 JavaScript 函数
function AddShow(id){
document.getElementById(id).style.display="block";}
添加按钮以显示 div 标签:
<h:commandButton type="button" id="cmdadd1" value="#{message.btn__list_add}" onclick="AddShow('Add')" immediate="true"/>
JSF 页面 Div 内容
<div id="Add" display:none;">
<h:outputLabel value="#{message.label_listA }" />
<o:suggestionField id="addvalA" value="#{MainAction.CodeAdd}" customValueAllowed="false"
manualListOpeningAllowed="true" autoComplete="true" suggestionMinChars="1 onchange="O$.ajax.request(this,event,{ execute: 'frmList: addvalA ', listener: ‘MainAction.doSelectCodeAdd', render: 'frmList' })"onkeydown="O$.ajax.request(this,event,{listener: 'MainAction.doResetA'})" onblur="O$.ajax.request(this,event,{render:'frmList'})" ><o:dropDownItems value="#{MainAction.doCodeAdd}"/> </o:suggestionField>
<h:commandButton id="cmdAddConfirm" value="#{message.btn_create}" >
<f:ajax execute="@form" render="@form" listener="#{MainAction.doConfirmAdd}"/>
</h:commandButton>
</div>
有什么办法可以做到这一点吗?
最佳答案
将以下内容添加到您的js文件中我假设您已经获得了jQuery(来自primefaces),无论如何jsf.ajax.addOnEvent(function (data)...
是重要的部分.. .
jQuery(window).load(function () {
jsf.ajax.addOnEvent(function (data) {
if (data.status === "success") {
if(data.source.id === "cmdAddConfirm"){
AddShow('Add');
}
}
});
});
简短说明:
在每个ajax调用中,只有在成功结束后并且仅当通过cmdAddConfirm
按钮进行调用时,才会在其中调用jsf.ajax.addOnEvent
,您将调用您的 js 函数来将显示设置为阻止
关于javascript - 使用 JSF 中的 java 脚本或 Ajax 渲染选项使 div 标签可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12383743/