JQuery AJAX 方法同时执行 "success" 和 "failure"
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
class 实例并且 page.db.UserGet
不为空,这意味着电子邮件已被接收。如果它仍然为空,则没有找到具有该电子邮件的用户并且该电子邮件可用。
我做错了什么?
你的语法不行,你不能用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 方法来告诉用户注册时电子邮件是否可用。
$('#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
class 实例并且 page.db.UserGet
不为空,这意味着电子邮件已被接收。如果它仍然为空,则没有找到具有该电子邮件的用户并且该电子邮件可用。
我做错了什么?
你的语法不行,你不能用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"); }
});