所以我有一个Ajax请求,它给了我一个“ Expected;” 错误。
$(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.
});
我指出了代码中错误发生的位置。我不明白这是什么,我觉得我在语法上是正确的。我将分号放在函数结束处。如果有人可以帮助,那就太好了。我觉得这是一个小错误,或者我错过了一些东西。谢谢。
答案 0 :(得分:3)
您需要将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);
}
});
});
};
});
或者甚至在文档外部声明该函数为就绪状态,然后仅在就绪状态中引用该功能。
答案 1 :(得分:3)
$(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.
尝试一下。
由于缺少“功能”关键字,因此应使用它来定义功能。
答案 2 :(得分:2)
您需要为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);
}
});
});
}; // <--
答案 3 :(得分:1)
您已经不能从createUpdatesArray函数将任何内容推入ID和日期。因为id和date没有定义为全局变量。因此,您的post函数将始终发送null。您需要稍微更改代码。 您可以定义ID和日期,例如:
var ids = {};
var dates = {};
请记住,现在您的函数和“ ids,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.