簡體   English   中英

jQuery AJAX方法同時執行“成功”和“失敗”

[英]JQuery AJAX method executes both “success” and “failure”

我有一個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不為null,這意味着將接收電子郵件。 如果仍然為null,則找不到使用該電子郵件的用戶,並且該電子郵件可用。

我在這里做錯了什么?

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

您的語法無效,您不能將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參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM