خطأ في إنشاء '< السابق " و " التالي >' (تاريخ) رابط jQueryUI باستخدام منتقي التاريخ setdate

StackOverflow https://stackoverflow.com/questions/1652948

  •  22-07-2019
  •  | 
  •  

سؤال

أحاول إرفاق "< السابقة" و "التالي >" روابط jQueryUI التحكم منتقي التاريخ.مشكلتي هي أنه سوف بشكل صحيح إضافة 1 يوم, ولكن ثم توقف.فإنه لن يستمر مضيفا أيام.(نفسه مع زر السابق).حتى إذا أدخل 10/30/2009 فقط "التالي" إلى 10/31/2009, و لا يتدحرج إلى 1 نوفمبر.أي أفكار ؟ هنا هو بلدي تبسيط كود:

ذات الصلة HTML:

<form id="dateForm">
<a href="" id="previous">&laquo; Previous</a>
<input name="datepicker" type="text" value="10/30/2009" id="datepicker" />
<a href="" id="next">Next &raquo;</a>

ذات الصلة جافا سكريبت / jQueryUI:

// Datepicker Init
$("#datepicker").datepicker({showOn: 'button', buttonText: 'Click to choose date'}).change(function () {
    refreshSchedule();
});

// Next Day Link
$('a#next').click(function () {
    $("#datepicker").datepicker('setDate', '+1');
    refreshSchedule();
    return false;
});

// Previous Day Link
$('a#previous').click(function () {
    $("#datepicker").datepicker('setDate', '-1');
    refreshSchedule();
    return false;
});

JQueryUI منتقي التاريخ يعمل بشكل صحيح على خلاف ذلك.

تحديث في تعليق - refreshCalendar() وظيفة يمكن أن يكون اسمه doSomething () ؛ إنه لا صلة لها بالموضوع الأصلي السؤال عن كيفية زيادة/deincrement رقم منتقي التاريخ الميدانية.وقال هنا هو رمز.أنا قد فعلت نفس الشيء مع $("#منتقي التاريخ").تغيير() المستمع وظيفة رد اتصال لتحديث الجدول/العنوان.

// Get the latest calendar data from server. Update the calendar title & table
// returns a json array: data[0] = title, data[1] = html table contents
refreshCalendar = function () {
    var selectedDate = $("#datepicker").val();
    $.getJSON(serverUrl, {targetDate: selectedDate}, function (data) {
        $("#calendarTitle").html(data[0]);
        $("#calendarTable").html(data[1]);
    });
};
هل كانت مفيدة؟

المحلول

كما يقول الأطباء عن منتقي التاريخ setDate يتيح لك توفير سلسلة من عدد الأيام من اليوم.وهذا يعني $().منتقي التاريخ('setDate', '-1');دائما يساوي تاريخ اليوم - 1 اليوم, هل يمكن أن نسمي ذلك 12 مرة في صف واحد وسوف يساوي دائما نفس الشيء (إلا إذا كنت تبدأ في الساعة 11:59 مساء في يوم واحد والنهاية 12:01صباحا القادم)

http://jqueryui.com/demos/datepicker/#method-setDate

ما أعتقد أنك تريد هذا:

// Next Day Link
$('a#next').click(function () {
    var $picker = $("#datepicker");
    var date=new Date($picker.datepicker('getDate'));
    date.setDate(date.getDate()+1);
    $picker.datepicker('setDate', date);
    return false;
});

// Previous Day Link
$('a#previous').click(function () {
    var $picker = $("#datepicker");
    var date=new Date($picker.datepicker('getDate'));
    date.setDate(date.getDate()-1);
    $picker.datepicker('setDate', date);
    return false;
});

نصائح أخرى

كما جاء عبر هذا مؤخرا في حاجة إلى تعديل الناتج قليلا - هنا بلدي jsfiddle.لاحظ أن النقر على زر عندما تستخدم مثل هذا ؛

 <button class="prev-day">Previous</button>

سيتم تحديث الصفحة والتي قد تستخدم الكثير من موارد الملقم.لمنع ذلك ، يمكنك استخدام

  <button type="button" class="prev-day">Previous</button>

وإذا كنت بحاجة إلى ذلك ، يمكنك تحديث الأخرى ذات الصلة وظيفة / البيانات باستخدام اياكس الاتصال.

http://jsfiddle.net/uh26x030/1

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