خطأ في إنشاء '< السابق " و " التالي >' (تاريخ) رابط jQueryUI باستخدام منتقي التاريخ setdate
-
22-07-2019 - |
سؤال
أحاول إرفاق "< السابقة" و "التالي >" روابط jQueryUI التحكم منتقي التاريخ.مشكلتي هي أنه سوف بشكل صحيح إضافة 1 يوم, ولكن ثم توقف.فإنه لن يستمر مضيفا أيام.(نفسه مع زر السابق).حتى إذا أدخل 10/30/2009 فقط "التالي" إلى 10/31/2009, و لا يتدحرج إلى 1 نوفمبر.أي أفكار ؟ هنا هو بلدي تبسيط كود:
ذات الصلة HTML:
<form id="dateForm">
<a href="" id="previous">« Previous</a>
<input name="datepicker" type="text" value="10/30/2009" id="datepicker" />
<a href="" id="next">Next »</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>
وإذا كنت بحاجة إلى ذلك ، يمكنك تحديث الأخرى ذات الصلة وظيفة / البيانات باستخدام اياكس الاتصال.