【发布时间】:2012-07-24 15:31:02
【问题描述】:
我有带日期选择器的文本框。根据我的要求,用户必须选择每月的第一个星期二或第二个星期二。因此,我使用以下代码禁用了其余日期,并且工作正常。
var dates_allowed = {
'2012-07-24': 1,
'2012-08-14': 1,
'2012-08-21': 1,
'2012-09-11': 1,
'2012-09-18': 1,
'2012-10-09': 1,
'2012-10-16': 1
};
$("#" + webinarDate.id).datepicker({
// called for every date before it is displayed
beforeShowDay: function(date) {
// prepend values lower than 10 with 0
function addZero(no) {
if (no < 10){
return "0" + no;
} else {
return no;
}
}
var date_str = [
addZero(date.getFullYear()),
addZero(date.getMonth() + 1),
addZero(date.getDate())
].join('-');
if (dates_allowed[date_str]) {
return [true, 'good_date', 'This date is selectable'];
} else {
return [false, 'bad_date', 'This date is NOT selectable'];
}
}
});
但问题是用户可以在文本框中输入日期而不是使用 datepicker(我不想要那个)。如何限制用户从日期选择器中选择日期,而不是手动输入。希望你能理解..
【问题讨论】:
-
必须使用日期选择器吗?如果唯一的选择是每月的第一个或第二个星期二,那么下拉菜单可能是更好的选择?
-
注意:您还需要确保您有服务器端验证来检查值,而不是仅仅依赖于被禁用的字段。
-
@TheZ“已禁用”文本框不会在 POST 上发送,因此只读是正确的选择。
-
@Amalea 啊,有道理。
标签: jquery