【发布时间】:2017-05-22 09:47:19
【问题描述】:
我尝试这样做,禁用所有日期并启用我通过参数传递的日期
此代码无效
$.ajax({
method: "GET",
url: "url",
})
.success(function(msg) {
console.log(JSON.parse(msg));
var disableIni = JSON.parse(msg);
var disable = [];
for (var i = 0; i < disableIni.length; i++)
{
disable[i] = moment(disableIni[i][0] + "/" + disableIni[i][1] + "/" + disableIni[i][2], "M/DD/YYYY");
if (i > 5)
{
break;
}
}
console.log(disable);
var vectorTest = [moment("5/25/2017", "M/DD/YYYY"), moment("5/26/2017", "M/DD/YYYY"), moment("5/27/2017", "M/DD/YYYY")];
console.log(vectorTest);
var vector = disable;
console.log(vector);
$('#input_from').datetimepicker({
locale: 'es',
format: 'DD-MM-YYYY',
enabledDates: $.each(vector, function(i, value) {
return value;
})
});
});
但如果我将var vector = disable 更改为var vector = vectorTest,则工作正常:
$.ajax({
method: "GET",
url: "url",
})
.success(function(msg) {
console.log(JSON.parse(msg));
var disableIni = JSON.parse(msg);
var disable = [];
for (var i = 0; i < disableIni.length; i++)
{
disable[i] = moment(disableIni[i][0] + "/" + disableIni[i][1] + "/" + disableIni[i][2], "M/DD/YYYY");
if (i > 5)
{
break;
}
}
console.log(disable);
var vectorTest = [moment("5/25/2017", "M/DD/YYYY"), moment("5/26/2017", "M/DD/YYYY"), moment("5/27/2017", "M/DD/YYYY")];
console.log(vectorTest);
var vector = vectorTest;
console.log(vector);
$('#input_from').datetimepicker({
locale: 'es',
format: 'DD-MM-YYYY',
enabledDates: $.each(vector, function(i, value) {
return value;
})
});
});
有可能做到我想要的吗??
编辑
ajax 响应:
这是一个包含其他 3 个位置的数组的数组。 [0] => 月,[1] => 日,[2] => 年
谢谢
【问题讨论】:
-
您的
msg变量是字符串还是对象?如果对象则使用msg.data -
创建一个变量disableParams = [true,msg],然后使用这个disable:disableParams
-
通过
json_encode()转成json发送,然后使用parseJSON()正确使用 -
试试这个 msgArr = JSON.parse(msg) 然后使用 msgArr。 JSON.parse() 将字符串转换为数组
-
现在的错误是什么?如果上面的结果是一个字符串,则通过添加 tempMsg = "["+msg+"]" 使其成为二维数组字符串,然后使用 JSON.parse(tempMsg) 将其转换为二维数组。
标签: jquery datetimepicker bootstrap-datetimepicker eonasdan-datetimepicker