Javascriptonchange
イベントを使用して、目的のラベルでラベルを更新するだけです。
または.. primefacesonSlideEnd
イベントを使用できます。
valueChangeListeners は、バッキング 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>