我想允许用户只选择一个日期或一个日期范围。它用于 SQL 搜索。
选择一个日期:我搜索具有此日期的项目
选择了两个日期:我搜索这两个日期之间的项目
我使用的是 PrimeFaces 8.0。我希望只有一个字段可以做到这一点。
使用
selectionMode="multiple"
,很好,但我不能将日期数量限制为最多 2 个日期。也不是很用户友好。能够只选择 2 个日期就好了,在选择的第三个日期前两个未选择。selectionMode="range"
,完美的选择两个日期,但如果你只选择了一个日期,它不会提交给支持 bean,完全被忽略。如何只提交一个日期?答案 0 :(得分:1)
此代码将遍历页面上的所有primefaces 小部件。 如果小部件是一个日期选择器,并且只选择了一个日期,它将添加与第二个日期相同的日期。
for (var widgetVar in PrimeFaces.widgets) {
try {
var widget = PrimeFaces.widgets[widgetVar];
if(widget.jq && widget.jq[0].classList.contains('p-datepicker')){
var datePicker = PF('' + widget.widgetVar);
console.log('datePicker found');
console.log(datePicker);
console.log('Date : ');
console.log(datePicker.getDate());
if(datePicker.getDate() && datePicker.getDate().length == 2 && datePicker.getDate()[1] == null){
datePicker.setDate(datePicker.getDate()[0]);
}
}
} catch (error) {
console.error(error);
}
}