JQuery AJAX方法同时执行"成功"和"失败"

时间:2015-01-12 16:59:35

标签: c# jquery ajax

我有一个AJAX方法告诉用户注册时是否有电子邮件。

$('#mainArea_txtEmail').keyup(function (e) {
    var inputemail = $(this).val();
    if (inputemail.length > 5)
    {
        $.ajax({
            type: "POST",
            url: "Default.aspx/isEmailAvailable",
            data: '{email: "' + inputemail + '" }', 
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: alert("available"),
            failure: alert("unavailable")
        });
    }
});

当用户输入电子邮件时,无论是否可用,浏览器都会显示成功提醒,然后每次都显示失败提醒。

这是C#方法:

[System.Web.Services.WebMethod]
    public static string isEmailAvailable(string email)
    {
        BasePage page = new BasePage();
        string returnvalue;
        if (page.db.UserGet(email) == null)
        {
            returnvalue = "true";
        }
        else
        {
            returnvalue = "false";
        }
        return returnvalue;
    }

db.UserGet方法将尝试查找电子邮件地址与email参数匹配的用户的数据库记录。如果有,则填充User类实例,page.db.UserGet不为空,表示已收到电子邮件。如果它仍为空,则找不到具有该电子邮件的用户,并且该电子邮件可用。

我在这里做错了什么?

我正在学习本教程(http://www.c-sharpcorner.com/UploadFile/20abe2/how-to-check-user-name-or-email-availability-using-Asp-Net

1 个答案:

答案 0 :(得分:1)

您的语法不起作用,您不能使用alert作为回调函数。 alert需要包含在适当的功能中,否则会立即触发

  $.ajax({
        type: "POST",
        url: "Default.aspx/isEmailAvailable",
        data: '{email: "' + inputemail + '" }', 
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(serverResponse) {
              alert("available"); 
              /* do something with serverResponse */
        },
        failure: function() { alert("available"); }
    });

<强> $.ajax API Reference