[英]Dynamically show a panelGroup when an event happens (JSF/ICEFACES)
我想動態顯示panelGroup。
在此代碼中,我有一些可以填充的框。 當最后一個可用的框填充有數據時,應該顯示帶有一組新框的panelGroup。
<ice:panelGroup binding="#{myPage.boxes0to9}" />
<ice:panelGroup binding="#{myPage.boxes10to19}" />
僅在#{myPage.boxes0to9}中的最后一個框已填寫時,如何顯示第二個panelGroup?
謝謝!
您可以通過將<ice:panelGroup>
用div包裹並通過javascript檢查顯示/隱藏來實現此目的:
<script type="text/javascript">
var arrInputs = new Array(9);
function checkInputsFulfilled(value, index) {
arrInputs[index] = (value == "");
var filled = true;
for(var i = 0; i < arrInputs.length; i++) {
if (arrInputs[i]) {
filled = false;
break;
}
}
document.getElementById("myDiv").style.display = filled ? "block" : "none";
}
</script>
<ice:panelGroup binding="#{myPage.boxes0to9}">
<!-- your 9 inputs (or more) here, I'll write 1 as a sample -->
<h:inputText value="#{myBean.attribute1}" onchange="checkInputsFulfilled(this.value, 0);" />
</ice:panelGroup>
<div id="myDiv" style="display:none">
<ice:panelGroup binding="#{myPage.boxes10to19}">
</ice:panelGroup>
</div>
您也可以使用ajax支持並提供一個包裝第二個<ice:panelGroup>
的JSF組件來完成此操作,但是當您僅清空一個起始輸入並且應該隱藏該組時,這將產生很大的影響。 當然,如果您不希望僅修改它,則此最后一個行為由javascript控制:)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.