Я использую плагин jquery.timepicker. (Ссылка: http://jonthornton.github.io/jquery-timepicker/)jQuery массив не работает после вызова Ajax
См пример кода ниже (это работает)
var disableTime= [['12:30 PM', '1:00 PM'], ['11:30 AM', '12:00 PM']];
$("#InterviewTime").timepicker(
{
'minTime': '7:00am',
'maxTime': '9:00pm',
'disableTimeRanges': disableTime
}
);
Однако, мне нужно получить данные для «disableTime» переменной с сервера через Ajax вызова. Для этого я готовлю строку C# (в моем ASP.NET MVC-контроллере) в том же формате, что и выше, в переменной «disableTime». Я получаю отформатированную строку в JQuery, как Json строку, а затем преобразовать строку в массив яваскрипта ... как показано ниже
var disableTime = jQuery.makeArray(data);
, но это не работает
Любой догадаться, почему это не работает?
Если я вручную копирую данные с помощью console.log (jQuery.makeArray (data)), а затем назначить скопированное скопированное значение переменной «disableTime», он снова отлично работает.
Вот полный код
MVC контроллер
var outputStr = "[['12:30 PM', '1:00 PM'], ['11:30 AM', '12:00 PM']]";
return Json(outputStr, JsonRequestBehavior.AllowGet);
JQuery
$.ajax({
url: '@Url.Action("GetUnavailableTime", "Interview")',
type: 'GET',
data: { 'scheduledDate': scheduledDate, 'timeZone': timeZone},
contentType: "application/json; charset=utf-8",
dataType: 'json',
success: function (data) {
var disableTime = jQuery.makeArray(data);
$("#InterviewTime").timepicker(
{
//'minTime': newtime,
'minTime': '7:00am',
'maxTime': '9:00pm',
'disableTimeRanges': disableTime
}
);
},
error: function (xhr, err) {
alert("readyState: " + xhr.readyState + "\nstatus: " + xhr.status);
alert("responseText: " + xhr.responseText);
}
});
Используйте fiddler/firebug, чтобы убедиться, что ваша страница вызвана. После этого убедитесь, что возвращенный JSON действителен. –