JQuery日期验证,以检查每个月的第一天

时间:2012-08-03 22:03:12

标签: jquery jquery-plugins

我正在使用Jquery验证,我正在尝试进行日期验证,以便用户只能输入每月的第1个作为有效日期,因此例如08/01/2012将是有效日期但不是08 / 02/2012。

现在我有以下代码,这只是做基本的日期检查是否有我可以添加的规则,所以它检查日期是每个月的第一天?提前谢谢!

 <script>
       $(document).ready(function(){
        $("#formID").validate({
                         rules: {

                             CurrentEligibleEmployees: {
                                  required: true,
                                  number: true},

                            EstimatedEnrolledEmployees: {
                                  required: true,
                                  number: true},

                                DesiredEffectiveDate: {
                                      required: true,
                                      date: true},

                                PlanAnniversaryStartDate: {
                                      required: true,
                                      date: true},

                                      PlanAnniversaryEndDate:{
                                           required: true,
                                            date: true}
                              }     

                         });
    });
</script>

1 个答案:

答案 0 :(得分:1)

我不会让用户输入日期,而只是输入月份和年份。你可以从jquery ui datepicker创建一个月选择器。这就是我曾经做过的事情:

monthpicker.js:

$.fn.monthpicker = function()
{
  var element = $(this);

  element.datepicker(
  {
    changeMonth: true,
    changeYear: true,
    dateFormat: 'yy-mm',
    onClose: function()
    {
      var widget = get_widget();

      var month = widget.find(".ui-datepicker-month :selected").val();
      var year = widget.find(".ui-datepicker-year :selected").val();

      element.datepicker('setDate', new Date(year, month, 1));

      widget.hide().removeClass("monthpicker");
    },
    beforeShow : function()
    {
      get_widget().addClass("monthpicker");

      var datestr = element.val();

      if (datestr.length > 0)
      {
        var date = datestr.split('-');

        year = date[0];
        month = date[1] - 1;

        element.datepicker('option', 'defaultDate', new Date(year, month));
        element.datepicker('setDate', new Date(year, month));
      }
    }
  });

  function get_widget()
  { return element.datepicker("widget"); }
};

monthpicker.css

.monthpicker .ui-datepicker-calendar{
        display: none;
}

所以现在你有一个

<input type="text" id="themonth">

并在脚本中执行此操作:

$('#themonth').monthpicker();

但是日期格式可能是你需要改变的,因为我使用了YYYY-MM