我有一个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
不为空,表示已收到电子邮件。如果它仍为空,则找不到具有该电子邮件的用户,并且该电子邮件可用。
我在这里做错了什么?
答案 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 强>