我正在尝试使用jQuery做一些AJAX,但我似乎遇到了问题。
在我的Safari检查器中,我收到Semantic Issue
和Unexpected Token :
。
我只是愚蠢吗?它似乎发生在data:
函数的$.ajax
行:
function storeEmail ()
{
alert('Entered Function');
email = $('#emailField').val();
$('#emailField').hide();
console.log('Yep: '+email);
if(email.indexOf('@'))
{
$.ajax(function(){
url: "emailer/storeEmail.ajax.php",
type: "POST",
data: { "email" : email }
}).done(function(data){
if(data.resp == "success")
$('#emailSuccess').show();
else
{
$('#failedText').html('Error: '+data.resp);
$('#emailFailed').show();
}
});
}
else
{
$('#failedText').html('Error: Email is invalid!');
$('#emailFailed').show();
}
return false;
}
答案 0 :(得分:3)
您似乎正在将功能传递给$.ajax()
。我想你想要传递一个物体。删除function()
件,你应该好好去。
答案 1 :(得分:1)
您不传递函数到$ .ajax,传递地图(JavaScript对象)
$.ajax({
url: "emailer/storeEmail.ajax.php",
type: "POST",
data: { "email" : email }
}).done(function(data){
if(data.resp == "success")
$('#emailSuccess').show();
else
{
$('#failedText').html('Error: '+data.resp);
$('#emailFailed').show();
}
});
答案 2 :(得分:0)
您收到错误的原因是此代码:
function(){
url: "emailer/storeEmail.ajax.php",
type: "POST",
data: { "email" : email }
}
这是一个匿名函数,但内容不是代码,而是对象文字的内容。
由于它被解释为代码,url:
成为标签,"emailer/storeEmail.ajax.php"
成为表达式。之后是,
运算符,它分隔两个表达式,因此它需要另一个表达式,而是来type:
。它将type
解释为变量,并将:
令牌解释为未完成的内容。
只需删除function()
即可使其成为对象文字:
{
url: "emailer/storeEmail.ajax.php",
type: "POST",
data: { "email" : email }
}