0

私は Jquery Validation を使用しており、ユーザーが有効な日付として毎月 1 日のみを入力できるように日付の検証を試みています。たとえば、2012 年 8 月 1 日は有効な日付ですが、2012 年 8 月 2 日は有効ではありません。 .

現在、私は次のコードを持っています。これは基本的な日付チェックを行っているだけですが、日付が毎月最初になるようにチェックするために追加できるルールはありますか? 前もって感謝します!

 <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>
4

1 に答える 1

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"); }
};

月ピッカー.css

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

だから今、あなたは持っています

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

そしてスクリプトでこれを行います:

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

ただし、YYYY-MM を使用しているため、日付形式を変更する必要があるかもしれません。

于 2012-08-03T22:31:26.660 に答える