在jQuery UI datepicker中仅选择特定日期(日期列表来自AJAX)
在这里,我发送电影ID并获取可用日期,我想将其设置为日历。 但它不起作用,它禁用所有日期。 从PHP返回日期字符串。 日期字符串正确,但日历不起作用。 请帮忙。
日期字符串示例
"28-02-2012","29-02-2012","01-03-2012","02-03-2012","03-03-2012","04-03-2012","05-03-2012","06-03-2012","07-03-2012","08-03-2012","09-03-2012","28-02-2012","29-02-2012","01-03-2012","02-03-2012","03-03-2012","04-03-2012","05-03-2012","06-03-2012","07-03-2012","08-03-2012","09-03-2012"
码
jQuery.post('index.php', { 'option': 'com_movie', 'controller': 'reservation', 'task': 'datelist', 'format': 'raw', 'mid': movieid }, function(result) { var onlydates = result.split(','); jQuery("#datepicker").datepicker({ dateFormat: 'yy-mm-dd', showOn: "button", buttonImage: "", buttonImageOnly: true, beforeShowDay: function(date) { dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear(); console.log(dmy + ' : ' + (jQuery.inArray(dmy, onlydates))); if (jQuery.inArray(dmy, onlydates) != -1) { return [true, "", "Available"]; } else { return [false, "", "unAvailable"]; } } }); return; });
- 仅初始化datapicker一次; 告诉它从全局数组中获取有效日期
- 使用数组文字初始化全局数组,必要时通过AJAX更新它
- 每当禁用/启用日期更改时调用
.datepicker("refresh")
方法 – 即通过AJAX获得新结果时 - 您的代码不会在日期中添加前导零,因此
$.inArray
将无法按预期工作
var datelist = []; // initialize empty array $("#datepicker").datepicker({ beforeShowDay: function(d) { // normalize the date for searching in array var dmy = ""; dmy += ("00" + d.getDate()).slice(-2) + "-"; dmy += ("00" + (d.getMonth() + 1)).slice(-2) + "-"; dmy += d.getFullYear(); return [$.inArray(dmy, datelist) >= 0 ? true : false, ""]; } }); $("#button").click(function() { datelist = []; // empty the array $.post("/echo/html/", { // parameters here }, function() { var result = "28-02-2012,29-02-2012,01-03-2012,02-03-2012,03-03-2012,04-03-2012,05-03-2012,06-03-2012,07-03-2012,08-03-2012,09-03-2012,28-02-2012,29-02-2012,01-03-2012,02-03-2012,03-03-2012,04-03-2012,05-03-2012,06-03-2012,07-03-2012,08-03-2012,09-03-2012"; // dummy result datelist = result.split(","); // populate the array $("#datepicker").datepicker("refresh"); // tell datepicker that it needs to draw itself again });
在这里演示
- 如何使用Ajax将图像发送到PHP文件?
- 使用微调器加载jQuery整个HTML页面
- jQuery Validation插件:在对servlet进行ajax调用时,submitHandler不会阻止提交时的默认值 – 返回false不能正常工作
- 从Rails 3升级后不允许使用Rails 4方法
- Mailchimp API获取错误,无法使用ajax成功
- jQuery / Ajax:使用ajax以动态forms填充选择框
- TypeError:stepUp调用未实现接口HTMLInputElement的对象
- PhantomJs – 从页面中获取价值。评估+ ajax(同步版)
- jquery $ .post()vs $ .get()