2017-04-14 78 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

是啊......我明白這一點。我現在明白了 –