I have a PF's selectOneRadio to choose a file type to download. Also I have a commandButton to call a download servlet using onclick attribute. The problem is that when I choose file type and click the button, the chosen value is of course not yet submitted. I'm looking for some way to get the chosen value available when I click on a download button.
Here's my code:
<p:selectOneRadio id="sorType" value="#{bean.type}" layout="custom">
<f:selectItem itemLabel="XML" itemValue="XML" />
<f:selectItem itemLabel="XLS" itemValue="XLS" />
<f:selectItem itemLabel="CSV" itemValue="CSV" />
</p:selectOneRadio>
<p:commandButton type="button" ajax="false" onclick="return downloadFile('#{bean.type}');" />
If you want to check the selected value on client side, you will need to define
widgetVar
attribute for yourp:selectOneRadio
, for example:This will allow the element to be easily found - you can then use it further to check which value was actually selected. I can see two options how to do it:
Select whichever approach suits you better - both will return either the selected value or an empty string in case nothing has been selected. So all that remains is calling it in you button's
onclick
, so for example:Tested on PrimeFaces 5.2
The solution shared by @Sva.Mu did not work for me.
I have an implementation quite similar to the last showcase in PrimeFaces Showcase referred to custom layouts with some
<p:radioButton>
pointing their own<f:selectItem>
.Instead of use
PF('widgetName').getJQ().find(':checked').val();
I succeed withPF('widgetName').inputs.filter(':checked').val();
merging in some way both approaches.My version of PrimeFaces: 6.1