سؤال

لقد أعلنت عن مثيل منتقي التاريخ على النحو التالي:

    $("#datePickerId").datepicker(
    { dateFormat: 'DD, d MM yy',
      minDate: 0,
      showOn: 'button',
      buttonImage: '../../images/calendar.gif',
      buttonImageOnly: true,
      hideIfNoPrevNext: true
    }
   );

أريد الآن التغيير إلى خيار minDate لذلك أفعل هذا:

$('#datePickerId').datepicker('option', 'minDate', 3);

ولكن لا شيء يحدث.هل كان من المفترض أن أفعل أي شيء آخر؟ما هي الأسباب المحتملة الأخرى التي يمكن أن تكون هناك؟

هل كانت مفيدة؟

المحلول

ودراكو،

ويمكنك القيام بذلك من هذا القبيل:

$("#datePickerId").datepicker(
    { dateFormat: 'DD, d MM yy',
      minDate: new Date(2009, 10 - 1, 25), // it will set minDate from 25 October 2009
      showOn: 'button',
      buttonImage: '../../images/calendar.gif',
      buttonImageOnly: true,
      hideIfNoPrevNext: true
    }
   );

وتذكر أن أكتب -1 بعد شهر (على سبيل المثال ليونيو هو -> 6 -1)

نصائح أخرى

كيفية تغيير minDate ديناميكيًا (بعد الحرف الأول)

تتناول الإجابات المذكورة أعلاه كيفية تعيين minDate الافتراضي عند الحرف الأول، ولكن السؤال كان في الواقع كيفية تغيير minDate ديناميكيًا، وفيما يلي أيضًا توضيح كيفية تعيين minDate الافتراضي.

كل ما كان خطأ في السؤال الأصلي هو أن قيمة minDate التي تم تعيينها يجب أن تكون عبارة عن سلسلة (لا تنس علامتي الاقتباس):

$('#datePickerId').datepicker('option', 'minDate', '3');

يقبل minDate أيضًا كائن تاريخ والاستخدام الشائع هو أن يكون لديك تاريخ انتهاء تحاول حسابه، لذا قد يكون شيء مثل هذا مفيدًا:

$('#datePickerId').datepicker(
    'option', 'minDate', new Date($(".datePop.start").val())
);

كيفية تعيين minDate الافتراضي (عند الحرف الأول)

مجرد الإجابة على هذا للحصول على أفضل الممارسات؛يتوقع خيار minDate واحدًا مما يلي:

  1. سلسلة في تنسيق التاريخ الحالي أو
  2. عدد الأيام من اليوم (على سبيل المثال+7) أو
  3. سلسلة من القيم والفترات ('y' لسنوات ، 'M' لعدة أشهر ، 'W' لعدة أسابيع ، 'D' لعدة أيام ، على سبيل المثال'-1y -1m')

@bogart يعد تعيين السلسلة على "0" حلاً لأنه يلبي الخيار 2 أعلاه

$('#datePickerId').datepicker('minDate': '3');

مستندات jQuery UI لـ minDate

استخدم minDate كسلسلة:

$('#datePickerId').datepicker({minDate: '0'});

وهذا سيحدد اليوم كحد أدنى التاريخ اختيار.

قم بتغيير minDate بشكل حيوي

.datepicker("destroy")

على سبيل المثال

<script>
    $(function() {
      $( "#datepicker" ).datepicker("destroy");
      $( "#datepicker" ).datepicker();
    });
  </script>

  <p>Date: <input type="text" id="datepicker" /></p>

ويقول لدينا اثنين من التاريخ حدد المجالات، field1، ومن field2. تاريخ field2 يعتمد على field1

$('#field2').datepicker();
$('#field1').datepicker({
  onSelect: function(dateText, inst) {
    $('#field2').val("");
    $('#field2').datepicker("option", "minDate", new Date(dateText));
  }
});

وليس هناك حاجة لتدمير الحالة الراهنة، مجرد تحديث.

$('#datepicker')
    .datepicker('option', 'minDate', new Date)
    .datepicker('refresh');

وبداية شهر من 0. 0 = يناير 1 = فبراير 2 = مارس، ...، 11 = ديسمبر كانون الاول.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top