使用 Javascriptonchange
事件并使用所需的标签更新标签。
或者..您可以使用 primefacesonSlideEnd
事件。
valueChangeListeners 将一直到 backing bean,然后返回到客户端
基于此
我有一个滑块,可以正确更新输入字段的值(包括支持 bean 中的值)。但是该值是一个数字,我想将其显示为文本值,例如,如果它是 1,我想显示“简单”,如果它是 4,则显示“困难”。
您只需要一个 JavaScript onchange 事件并更新标签。
这是一个例子(我没有测试或检查语法,但它应该给你一个想法)用户第一次进入你可以从服务器或客户端初始化标签,就像你设置默认值一样滑块。
<script>
var labelElement = document.getElementById('output');
var sliderElement = document.getElementById('txt2');
function updateSliderLabel(){
if(sliderElement.value > 75){
labelElement.value = "Large";
} else if(sliderElement.value > 50){
labelElement.value = "Avg";
} else {
labelElement.value = "Small";
}
}
</script>
<h:form id="form">
<h:panelGrid columns="1" style="margin-bottom:10px">
<h:panelGroup>
<h:outputText value="Set ratio to "/>
<h:outputText id="output" value="#{sliderBean.number2}"/>
</h:panelGroup>
<h:inputHidden id="txt2" value="#{sliderBean.number2}" />
<p:slider onSlideEnd="updateSliderLabel()" for="txt2" display="output" style="width:200px" />
</h:panelGrid>
</h:form>