1

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;
}
4

3 に答える 3

3

に関数を渡しているよう$.ajax()です。オブジェクトを渡すつもりだったと思います。function()ピースを取り除くと、準備完了です。

于 2012-11-17T23:51:29.260 に答える
1

$ .ajaxに関数を渡さず、map(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();
    }
});
于 2012-11-17T23:51:54.423 に答える
0

エラーが発生する理由は次のとおりです。

function(){
    url: "emailer/storeEmail.ajax.php",
    type: "POST",
    data: { "email" : email }
}

これは無名関数ですが、コンテンツはコードではなく、オブジェクトリテラルのコンテンツです。

コードとして解釈されるため、url:はラベルに"emailer/storeEmail.ajax.php"なり、式になります。その後、,2つの式を区切る演算子が来るので、別の式を期待しますが、代わりにtype:typeそれは変数として解釈され、:その後のトークンは予期しないものです。

削除function()するだけで、オブジェクトリテラルになります。

{
    url: "emailer/storeEmail.ajax.php",
    type: "POST",
    data: { "email" : email }
}
于 2012-11-18T00:00:25.800 に答える