0

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

4

2 回答 2

0

您的 IsValidEmail 函数看起来有点奇怪。它接受一个参数email,但将一个参数传递u_email.TextemailExists函数。目前尚不清楚这是从哪里来的。

此外,您的emailExists函数似乎既是对象的方法,user又需要user对象作为参数。我怀疑您的问题是该功能...您可以发布它的代码吗?

于 2013-07-29T13:01:49.570 回答
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");
                });
         }

于 2013-07-29T12:44:40.097 回答