2017-04-14 12 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分○○秒PM' 私はこの文字列を組み立てるいくつかのコードを持っています'1:30:00PM']]

その後、

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

私はクロームデバッガが私に与えているので、私は何か間違ったことをやっている知っている:

キャッチされない例外TypeError: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

ええ、ありがたいことです。分かりました –