Tengo un rango DatePicker de Primefaces. Pero también quiero poder seleccionar solo una fecha .
Pero si lo hago, no obtendré ningún valor, solo una matriz vacía. Esto se debe a que la función interna (que no puedo modificar) solo devuelve algo cuando se dan dos valores. O al menos eso creo.
La solución en la que pensé fue simplemente tomar el primer valor de la matriz llamándolo con una función de javascript, pero no puedo acceder a ella porque la función PF no tiene un nombre de función ni una clase.
Aquí el código de la función 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) } } }Aquí está mi pobre intento de javascript:
<script type="text/javascript"> function getArrayValue(){ console.log("inFunction"); console.log(window.d.value[0]); } </script>Esto se llama con esto:
<div class="p-field p-col-12 p-md-4"> <p:datePicker id="range" selectionMode="range" value="#{SearchBean.range}" onblur="getArrayValue()"> </p:datePicker> </div>¡Gracias por su ayuda de antemano! :)
Acabo de ayudar a un amigo a hacer lo mismo que establece el rango para que ambas fechas sean iguales, puedes hacerlo con este 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>Luego en su DatePicker...
<p:datePicker id="range" widgetVar="wgtRange" selectionMode="range" value="#{SearchBean.range}" onblur="adjustDateRange('wgtRange')"> </p:datePicker>