检查电子邮件注册asp.net + jquery的可用性

时间:2013-07-29 12:38:39

标签: jquery asp.net

我正在尝试检查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是一个函数,我得到了我的数据库的结果(因为我将项目划分为层,所以我有表示层,业务层和日期层)。我不确定这是否是我想做的正确方法。那么,我的错误在哪里?

2 个答案:

答案 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个对象作为参数。我怀疑你的问题是那个功能......你可以为它发布代码吗?