0
我正在開發一個系統,用戶選擇一些複選框,每個複選框都有一個貨幣值,我想根據選中的複選框更改outputText。如何更改outputText的值?
例如:我有三個複選框,每個都有$ 10.00。如果用戶只選擇兩個複選框,則outputText必須顯示$ 20.00。如果用戶選擇最後一個,outputText必須顯示$ 30.00。而這一切都沒有重新加載頁面。
我迄今爲止代碼:
<h:form id="form">
<p:fieldset legend="Tipo base do site:" style="margin-bottom:20px">
<h:panelGrid columns="2" cellpadding="5">
<p:dataList value="#{tiposIndexView.tipos}" var="tipo"
type="ordered" >
R$
<h:outputText value="#{tipo.preco}" >
<f:convertNumber pattern="#0.00" />
</h:outputText>
</p:dataList>
<p:selectOneRadio id="tipo" value="#{tiposIndexView.tipos}"
layout="grid" columns="1">
<f:selectItems value="#{tiposIndexView.tipos}" var="tipo"
itemLabel="#{tipo.nome}" itemValue="#{tipo.nome}" />
</p:selectOneRadio>
</h:panelGrid>
</p:fieldset>
<p:fieldset legend="Sistemas adicionais:" style="margin-bottom:20px">
<h:panelGrid columns="2" cellpadding="5">
<p:dataList value="#{sistemasIndexView.sistemas}" var="sistema"
type="ordered" >
R$
<h:outputText value="#{sistema.preco}" >
<f:convertNumber pattern="#0.00" />
</h:outputText>
</p:dataList>
<p:selectManyCheckbox style="margin-top:0px;!important" id="grid" value="#{sistemasIndexView.sistemas}" layout="grid" columns="1">
<f:selectItems value="#{sistemasIndexView.sistemas}" var="sistema" itemLabel="#{sistema.nome}" itemValue="#{sistema}" />
</p:selectManyCheckbox>
</h:panelGrid>
</p:fieldset>
<p:fieldset legend="Valor total:">
<h:outputText>
R$
<f:convertNumber pattern="#0.00" />
</h:outputText>
</p:fieldset>
</h:form>
最後的outputText是我想要顯示的總價值。
還有一個問題,每次打開我的網站時,所有複選框都會開始檢查,我希望所有複選框都未選中。複選框的代碼:
@ManagedBean
@ViewScoped
public class SistemasIndexView implements Serializable{
private static final long serialVersionUID = -2697991732915561009L;
private List<Sistema> sistemas;
@PostConstruct
public void init(){
sistemas = new ArrayList<>();
sistemas.add(new Sistema("Teste", 200));
sistemas.add(new Sistema("Exemplo", 300));
sistemas.add(new Sistema("gsdfaf", 50));
}
public List<Sistema> getSistemas() {
return sistemas;
}
public void setSistemas(List<Sistema> sistemas) {
this.sistemas = sistemas;
}
}
如果您使用jquery,這是簡單的實現。你可以使用它嗎? – NightsWatch
我可以選擇這個系統的語言,但我現在真的很想學習JSF。 :) –
複選框的默認值取決於您的支持bean中的true/false,您沒有提供代碼,因此我們只能猜測您的默認值爲「true」。你想把總數存儲在後臺bean中嗎? – Geinmachi