我正在尝试检查keyup事件中电子邮件的可用性。这是我的jquery代码:
<script type="text/javascript">
$(document).ready(function () {
var emailAlreadyExists = $("#registerContent").find('[id$=emailAlreadyExists]');
var email = $("#registerContent").find('[id$=u_email]');
email.keyup(function () {
emailAvailability();
});
function emailAvailability() {
$.post("Register.aspx/isValidEmail", { email: email.val() }, function (result) {
if (result == true)
emailAlreadyExists.text("The e-mail is already taken");
else
emailAlreadyExists.text("Available");
});
}
});
</script>
这里是我的代码:
public bool isValidEmail(string email)
{
UserBusiness user = new UserBusiness(u_email.Text);
return user.emailExists(user);
}
问题是,即使我尝试输入已存在于我的数据库中的电子邮件,我也总是收到标签的“可用”消息。正如您所看到的,isValidEmail是一个函数,我得到了我的数据库的结果(因为我将项目划分为层,所以我有表示层,业务层和日期层)。我不确定这是否是我想做的正确方法。那么,我的错误在哪里?
答案 0 :(得分:0)
我怀疑,这里存在范围问题......
试试这个
<script type="text/javascript">
$(document).ready(function () {
var emailAlreadyExists = $("#registerContent").find('[id$=emailAlreadyExists]');
var email = $("#registerContent").find('[id$=u_email]');
email.keyup(function () {
var Value=$(this).val();
emailAvailability(Value);
});
});
function emailAvailability(obj) {
$.post("Register.aspx/isValidEmail", { email: obj }, function (result)
{
if (result == true)
emailAlreadyExists.text("The e-mail is already taken");
else
emailAlreadyExists.text("Available");
});
}
答案 1 :(得分:0)
您的IsValidEmail函数看起来有点奇怪。它需要参数email
,但会将参数u_email.Text
传递给emailExists
函数。目前尚不清楚它来自哪里。
此外,您的emailExists
函数似乎都是user
对象的方法,并且需要user
个对象作为参数。我怀疑你的问题是那个功能......你可以为它发布代码吗?