2017-04-14 92 views
0

我有一个时间选择器工作得很好,除了当我试图disableTimeRanges。我有一些代码,汇编此字符串:在这一点上timepicker disableTimeRanges

var disableTimeRanges = '['; 
var count = jsonObject.length; 
var i = 0; 
$.each(jsonObject, function (i, obj) { 
    disableTimeRanges += "['" + obj.appointmentStart.split(" ").slice(1, 3).join('') + "','" + obj.appointmentEnd.split(" ").slice(1, 3).join('') + "']"; 
    i++; 
    if (i < count) 
     disableTimeRanges += ','; 
});// end $.each 
disableTimeRanges += ']'; 

, disableTimeRanges = [['11:30:00AM”, '12:00:00 PM'],[ '下午12点30分○○秒' '1:30:00']

然后,

$('#appointmentTimeTextbox').timepicker('option', { 
    'disableTimeRanges': disableTimeRanges 
}); 

我知道我做错了什么,因为铬调试器给我:

遗漏的类型错误:b.disableTimeRanges.sort不是功能

数组有问题吗?有没有更好的方法来组装阵列?

编辑:固定为一个数组:

var disableTimeRanges = new Array(); 
var appointmentTime = [obj.appointmentStart.split(" ").slice(1, 3).join(''), 
obj.appointmentEnd.split(" ").slice(1, 3).join('')]; 
disableTimeRanges.push(appointmentTime); 

回答

1

disableTimeRanges是不是在您的代码段的阵列,它是一个字符串。 这样的事情应该这样做:

var disableTimeRanges = []; 
var count = jsonObject.length; 

$.each(jsonObject, function (i, obj) { 
    inRange = [] 
    inRange.push(obj.appointmentStart.split(" ").slice(1, 3).join('')); 
    inRange.push(obj.appointmentEnd.split(" ").slice(1, 3).join('')); 
    disableTimeRanges.push(inRange); 
}); 
1

Is there a problem with the array?

是,它不是一个数组。这是一个字符串。虽然数组打印出来['A', 'B', 'C'],如果你想构建一个数组不一样字符串"['A','B','C']"

,构建阵列。

var cars = ["Saab", "Volvo", "BMW"]; 

https://www.w3schools.com/js/js_arrays.asp

+0

是啊......我明白这一点。我现在明白了 –