用户在最大日期后尝试单击时显示消息

时间:2015-11-25 19:47:21

标签: jquery jquery-ui date datepicker

在我的日期选择器上,我必须在特定日期设置最长日期。但是,拥有最大日期并不会对用户有任何意义(但是现在我必须限制它们。)

因此,为了不让用户感到困惑,我想在他们尝试浏览或点击该日期之后显示一条消息,以便他们无法选择它。

Datepicker似乎没有提供任何onclick事件。 我如何能够抓住用户点击导航或禁用日期,并在日期晚于最大日期时向他们显示消息?

2 个答案:

答案 0 :(得分:1)

禁用日期(最小/最大之外的日期)获取由datepicker添加的类ui-state-disabled。将click事件绑定到该类并设置警报。

$(document).on('click', '.ui-state-disabled', function () {
    alert('Invalid date')
})

<强> jsFiddle example

答案 1 :(得分:0)

好吧,我设法通过扩展上面的j08681建议来做到这一点。

日历附带html5数据属性...
所以,有点幸运,因为最长日期是一个月结束前的2天 - 我抓住了之前 data-month <的 td 值/ strong>在日历中使用jQuery .data(),如下所示:

$(document).on('click', '.ui-state-disabled', function () {
    if ($(this).prev().data('month') === 3) alert ('Invalid');
})

因此,当用户点击任何.ui-state-disabled时,我将检查前一天td是否有data-month = 3.如果是,则表示用户在Max Date之后点击。这将是第31天,这是我的maxDate之后的第一个残疾日 我有一个类似的,听取 .ui-datepicker-next.ui-state-disabled ,因此用户无法进入下个月,他们也会收到我的消息。