我有一个范围DatePicker从Primefaces。但是我还想选择一个日期.
但是如果我这样做,我不会得到任何值,只是一个空数组。这是因为内部函数(我不能修改)只有在给出两个值时才返回一些东西。至少我是这么认为的。
我想到的解决方法是通过使用javascript函数调用数组的第一个值,但我无法访问它,因为PF函数既没有函数名也没有类。
下面是PrimeFaces函数的代码:if (this.isRangeSelection()) {
if (this.value && this.value.length) {
var b = this.value[0],
g = this.value[1];
d = this.formatDateTime(b);
if (g) {
d += " " + this.options.rangeSeparator + " " + this.formatDateTime(g)
}
}
}
这是我可怜的javascript尝试:
<script type="text/javascript">
function getArrayValue(){
console.log("inFunction");
console.log(window.d.value[0]);
}
</script>
用This来调用:
<div class="p-field p-col-12 p-md-4">
<p:datePicker id="range" selectionMode="range"
value="#{SearchBean.range}" onblur="getArrayValue()">
</p:datePicker>
</div>
提前感谢您的帮助!:)
我刚刚帮助一个朋友做了同样的事情,将范围设置为两个日期是相同的,你可以用这个JS…
<script type="text/javascript">
function adjustDateRange(widgetVar) {
var widget = PF(widgetVar);
var dates = widget.getDate();
if (dates[0] && !dates[1]) {
dates[1] = dates[0];
widget.jq.data().primeDatePicker.updateModel(null, dates);
}
}
</script>
然后在你的DatePicker…
<p:datePicker id="range"
widgetVar="wgtRange"
selectionMode="range"
value="#{SearchBean.range}"
onblur="adjustDateRange('wgtRange')">
</p:datePicker>