【发布时间】:2022-12-04 19:27:59
【问题描述】:
我有一个日期字符串数组。我使用创建了一个日期输入字段
$('#mydatefield').datepicker({
multidate:true;
});
需要添加验证,当有人输入该数组中存在的日期时,应该删除并显示错误消息。 或者 是否可以在 datepicker init 上禁用这些日期?
【问题讨论】:
标签: javascript jquery datepicker
我有一个日期字符串数组。我使用创建了一个日期输入字段
$('#mydatefield').datepicker({
multidate:true;
});
需要添加验证,当有人输入该数组中存在的日期时,应该删除并显示错误消息。 或者 是否可以在 datepicker init 上禁用这些日期?
【问题讨论】:
标签: javascript jquery datepicker
一直在玩 OpenAI 来检查是否可以解决像这样的随机 stackoverflow 问题,这太疯狂了!
复制你的问题后回答:
可以使用 jQuery UI 日期选择器的 beforeShowDay 选项来禁用日期选择器中的某些日期。您可以使用此选项指定一个回调函数,该函数确定应在日期选择器中禁用哪些日期。此回调函数应将日期作为参数并返回一个包含两个值的数组:一个指示日期是否可选的布尔值,以及一个包含要应用于日期的 CSS 类的字符串。
下面是一个示例,说明如何使用 beforeShowDay 选项来禁用日期字符串数组中存在的日期:
var datesToDisable = ["2022-12-05", "2022-12-06", "2022-12-07"];
$('#mydatefield').datepicker({
multidate: true,
beforeShowDay: function(date) {
var string = $.datepicker.formatDate('yy-mm-dd', date);
if ($.inArray(string, datesToDisable) != -1) {
return [false, ""];
}
return [true, ""];
}
});
在此示例中,beforeShowDay 回调检查当前日期是否在 datesToDisable 数组中。如果是,则日期在日期选择器中被禁用,用户无法选择它。否则,日期被启用并且可以由用户选择。
如果用户尝试选择 datesToDisable 数组中的日期,您还可以使用日期选择器的 onSelect 事件显示错误消息。这是您如何执行此操作的示例:
$('#mydatefield').datepicker({
multidate: true,
beforeShowDay: function(date) {
var string = $.datepicker.formatDate('yy-mm-dd', date);
if ($.inArray(string, datesToDisable) != -1) {
return [false, ""];
}
return [true, ""];
},
onSelect: function(dateText) {
if ($.inArray(dateText, datesToDisable) != -1) {
// Show an error message
alert("Sorry, that date is not available. Please select another date.");
}
}
});
在此示例中,onSelect 事件处理程序检查所选日期是否在 datesToDisable 数组中。如果是,则向用户显示一条错误消息。
【讨论】: