Итак, у меня есть запрос ajax, и он дает мне ошибку "Ожидал ;".
$(document).ready(function () {
$("#btnSubmit").bind("click", function () {
var ids[] = null;
var dates[] = null;
createUpdateArrays();
var url = "/hello/index/";
$.ajax({
type: "Post",
url: url,
data: { ids: ids, dates: dates },
async: false,
contentType: "application/json;charset=utf-8",
success: function (success) {
if (success === true) {
alert("HERE WE ARE");
}
else {
alert("eror")
}
},
error: function (e) {
alert("eror")
}
});
});
createUpdateArrays() { // Expected ; <---- here
$('.id').each(function(i) {
var rid = $(this).id;
$('.planned-date').each(function(x) {
if (i===x) {
var date = $(this).text;
ids.push(rid);
dates.push(date);
}
});
});
}; // <--- this is where the createUpdateArrays function ends.
});
Я указал, где в коде возникает ошибка. Я не понимаю, что это такое, мне кажется, что я синтаксически прав. Я поставил точку с запятой там, где заканчивается функция. Если кто-то может помочь, это было бы здорово. Я чувствую, что это небольшая ошибка или я что-то упускаю. Спасибо.
В этой строке отсутствует ключевое слово function
Мы не так создаем функции. вы должны использовать function createUpdateArrays() { // your code }
Также удалите async: false. Это ужасная практика
Это сработало @lucumt, спасибо!
Почему так @RoryMcCrossan?
@caitlinp Рад помочь вам, можете ли вы отметить мой ответ как принятый или проголосовать за него?
В основном потому, что он блокирует обновление пользовательского интерфейса браузера во время обработки запроса. Таким образом, браузер будет казаться пользователю зависшим / аварийным. Также обратите внимание, что вам лучше просто удалить этот вопрос, так как проблема возникла из-за простой опечатки.
Ах, спасибо, @RoryMcCrossan. Кроме того, Стек не позволяет мне удалить этот вопрос, лол ..
Кроме того, почему var ids [] = null; переменные даты [] = ноль; ожидать точку с запятой? Я тоже получаю сообщение об ошибке.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вам нужно добавить function для createUpdateArrays() и определить его вне $(document).ready()
function createUpdateArrays() { // Expected ; <---- here
$('.remedy-id').each(function(i) {
var rid = $(this).id;
$('.planned-date').each(function(x) {
if (i===x) {
var date = $(this).text;
ids.push(rid);
dates.push(date);
}
});
});
}; // <--
Вам нужно объявить creatUpdateArrays как функцию.
$(document).ready(function () {
$("#btnSubmit").bind("click", function () {
var ids[] = null;
var dates[] = null;
createUpdateArrays();
var url = "/hello/index/";
$.ajax({
type: "Post",
url: url,
data: { ids: ids, dates: dates },
async: false,
contentType: "application/json;charset=utf-8",
success: function (success) {
if (success === true) {
alert("HERE WE ARE");
}
else {
alert("eror")
}
},
error: function (e) {
alert("eror")
}
});
});
function createUpdateArrays() { // Expected ; <---- here
$('.remedy-id').each(function (i) {
var rid = $(this).id;
$('.planned-date').each(function (x) {
if (i === x) {
var date = $(this).text;
ids.push(rid);
dates.push(date);
}
});
});
};
});
Или даже объявите функцию за пределами вашего документа готовой и просто сделайте ссылку на функцию в готовом состоянии.
$(document).ready(function () {
$("#btnSubmit").bind("click", function () {
var ids[] = null;
var dates[] = null;
createUpdateArrays();
var url = "/hello/index/";
$.ajax({
type: "Post",
url: url,
data: { ids: ids, dates: dates },
async: false,
contentType: "application/json;charset=utf-8",
success: function (success) {
if (success === true) {
alert("HERE WE ARE");
}
else {
alert("eror")
}
},
error: function (e) {
alert("eror")
}
});
});
});
function createUpdateArrays() { // Expected ; <---- here
$('.remedy-id').each(function(i) {
var rid = $(this).id;
$('.planned-date').each(function(x) {
if (i===x) {
var date = $(this).text;
ids.push(rid);
dates.push(date);
}
});
});
}; // <--- this is where the createUpdateArrays function ends.
Попробуй это.
Поскольку вам не хватает ключевого слова "function", вы должны использовать его для определения функции.
Кроме того, почему var ids [] = null; переменные даты [] = ноль; ожидать точку с запятой? Я тоже получаю сообщение об ошибке.
Вы уже не можете ничего передать идентификаторам и датам из функции createUpdatesArray. Потому что идентификаторы и даты не определены как глобальные переменные. Из-за этого ваша почтовая функция всегда будет отправлять null. Вам нужно немного изменить свой код. Вы можете определить идентификаторы и даты, например:
var ids = {};
var dates = {};
Помните, что теперь ваша функция и «идентификаторы, даты» не находятся в одной области действия. поэтому вы не можете ничего им передать из функции createUpdatesArray.
Вы должны определить эти элементы между функциями <script> и document.ready.
Ваш последний код будет выглядеть так:
var ids = {}; // ids is global now.
var dates = {}; // dates is global now.
$(document).ready(function () {
$("#btnSubmit").bind("click", function () {
//var ids[] = null;
//var dates[] = null;
createUpdateArrays();
var url = "/hello/index/";
$.ajax({
type: "Post",
url: url,
data: { ids: ids, dates: dates },
async: false,
contentType: "application/json;charset=utf-8",
success: function (success) {
if (success === true) {
alert("HERE WE ARE");
}
else {
alert("eror");
}
},
error: function (e) {
alert("eror");
}
});
});
});
function createUpdateArrays() { // Expected ; <---- here
$('.remedy-id').each(function(i) {
var rid = $(this).id;
$('.planned-date').each(function(x) {
if (i===x) {
var date = $(this).text;
ids.push(rid);
dates.push(date);
}
});
});
}; // <--- this is where the createUpdateArrays function ends.
Возможно, вам потребуется добавить
functionдляcreateUpdateArrays()и вызвать его еще