我需要知道我在事件中从范围 slider 获得的值来自哪个元素。我有以下代码:
<h:outputText id="displayValues" value="#{myBean.min} - #{myBean.max}"/>
<p:slider
id="mySlider"
for="min,max"
display="displayValues"
range="true"
displayTemplate=" {min} - {max}"
minValue="#{myBean.value1}"
maxValue="#{myBean.value2}" >
<p:ajax event="slideEnd" listener="#{simuladorBean.onSlideEnd}"/>
</p:slider>
<h:inputHidden id="min" value="#{myBean.min}"/>
<h:inputHidden id="max" value="#{myBean.max}" />
在带有 event.getValue() 的 myBean 中,我知道我移动的 slider 的新值,但我需要知道这个新值是来自最大还是最小 slider 。 有人可以帮我解决这个问题吗?
谢谢
最佳答案
通常,提交表单时,inputHidden
max 和 min 也会提交。但是由于您在 slider 上使用了 p:ajax
并且 p:ajax
的默认 process
是 @this
时,inputHidden
字段不会提交。如果将 p:ajax
更改为
<p:ajax event="slideEnd" process="@this, min, max" listener="#{simuladorBean.onSlideEnd}"/>
(或者将上面的整个 xhtml block 包装在容器中并进行处理)
提交了最小值和最大值,并且在 onSlideEnd
中,您可以将事件中获得的值与最小值和最大值进行比较,并确定哪一个发生了更改。
另请参阅
关于validation - Primefaces 范围 slider 最大值和最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49619802/