限制用户选择jQuery datepicker以外的日期

时间:2013-11-19 21:38:08

标签: javascript html jquery-ui date datepicker

我正在将会议室预订系统作为大学项目的一部分。我正在使用jQuery UI的datepicker来允许用户输入日期。我对预订日期进行了限制,只允许用户在会议实际预订日期前6天和最长30天之前预订房间。

我已经能够在阅读datepicker API后实现它,但由于它是一个文本字段,用户也可以手动输入日期。因此,如果今天是11月20日,用户只能预订11月26日到12月20日之间的日期。我已将其添加到日期选择器中,但用户仍然可以手动输入,比如说2013-11-20,并侥幸逃脱(当然,直到他们在下一页被php捕获。)

我想用javascript编写一个代码来检查日期并计算它是否属于某个范围。

我的代码中的重要摘要:

    <form action="#" method="post" style="margin-top:40px;">
    <input type="text" name="dateP" id="dateP" placeholder="DATE" required style="margin-right:40px;padding:5px;width:75px;">
    <input id="fromP" type="number" name="fromP" min="0800" max="2000" step="100" placeholder="FROM" required style="padding:5px;">hrs
    <input id="toP" type="number" name="toP" min="0900" max="2100" step="100" placeholder="TO" required style="padding:5px;">hrs<br>
    <input id="button" type="submit" value="PROCEED" style="border-color:#13c5ff;color:#13acd9;padding:5px;margin:30px;">
    </form>

    $(document).ready(function(){
            $('#dateP').datepicker({ minDate: +6, maxDate: +30, dateFormat: "yy-mm-dd", showAnim: "fadeIn"});
    });

因此,通过使用纯JavaScript,我可以获得当前日期并添加6或30来获得我所需的范围。但是我如何将它与jQuery UI格式为'yyyy-mm-dd'的日期进行比较?

P.S。我需要将格式保留在yyyy-mm-dd中,因为这也是我数据库中的格式。

1 个答案:

答案 0 :(得分:0)

您可以使用/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/之类的正则表达式。但是,您还需要在服务器端测试此正则表达式,因为任何人都可以将任何他们想要的内容发送到服务器,而不管客户端验证。