【发布时间】:2014-09-13 10:55:06
【问题描述】:
我有一个项目会输出 json_encode 日期项字符串。
看起来像这样:
<input type="hidden" class="avail_dates" data-id='["12-9-2014", "7-9-2014"]' />
我尝试了不同的方法,但由于这个项目必须存在,我不能简单地进行 ajax 调用并返回 json_encode 内容。
因此,我需要以某种方式将 data-id 放入 javascript 数组中以获取 datePicker。
使用这个可以,但它是硬编码的:
var availableDates = ["9-9-2014","5-9-2014","7-9-2014"];
使用它不会做任何事情:
var availableDatesArray = jQuery('.avail_dates').attr('data-id');
//alerting gives ["9-9-2014","5-9-2014","7-9-2014"]
有没有办法将字符串转换为有效的数组?
我可以更改数据进入 data-id 的方式,或者 jquery 与元素交互的方式,但我不能为此添加单独的 ajax 查询,它必须来自该 data-id。
var availableDates = ["9-9-2014","5-9-2014","7-9-2014"];
function dates(date){
dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear();
console.log(dmy+' : '+(jQuery.inArray(dmy, availableDates)));
if (jQuery.inArray(dmy, availableDates) != -1) {
return [true, "","Available"];
}
else {
return [false,"","unAvailable"];
}
return;
}
jQuery('#myDates').datepicker({
changeYear: true,
maxDate: '0',
changeMonth: true,
dateFormat: "mm/dd/yy",
yearRange: '2014:2030',
beforeShowDay: dates,
onSelect: function(dateText) {
}
});
编辑: 应该提到我已经尝试过 json.parse。它给出了“意外数字”错误。
编辑 2:我添加了我正在尝试为 jQuery datePicker 传递数据的函数。
【问题讨论】:
-
我无法使用
JSON.parse重现您的“意外数字”错误。你能提供一个jsfiddle吗? -
@David,JSON.parse 在此处使用显示为jsfiddle.net/js3qnae1的html 工作正常@
-
@David,很可能有一些你没有告诉我们的缺失部分,就目前而言,使用你的示例,使用 JSON.parse,并且 .data 可以正常工作
-
查看编辑,我添加了我用来传递它的函数。当它被硬编码时,它工作得很好,动态地根本不行。 json.parse 报错
标签: javascript php jquery arrays json