检查电子邮件时,JQuery getJSON()无法正常工作

时间:2013-05-21 09:52:03

标签: jquery asp.net

我有一个注册页面,用于检查另一个webmethod以查看数据库中是否存在特定值。

对于电子邮件验证,我有

//Checks the email against the database.
$(emailTextbox).blur(function () {
    if ($(this).val()) {
        email = encodeURI(escape($(this).val()));
        alert(email);
        $.getJSON('/CheckAvailable.aspx?' + email + ".email", function (results) {
            if (results.email == "true") {
                availabilityEmail.html('<img src="/App_Themes/DefaultTheme/misc/tick.png"/>');
                email = true;
                CheckValid();
            } else {
                availabilityEmail.html('<img src="/App_Themes/DefaultTheme/misc/cross.png"/>');
                email = false;
                CheckValid();
            }
        });
    }
});

使用

private string GetEmail(string email)
{
    const string strSql =
        "SELECT memberEmail FROM someView WHERE memberEmail = @email";

    var sqlComm = new SqlCommand(strSql, DataConn.Connect()) { CommandType = CommandType.Text };
    sqlComm.Parameters.Add(new SqlParameter("@email", SqlDbType.VarChar, 255)).Value = email;

    string rdr = (string)sqlComm.ExecuteScalar();

    return !string.IsNullOrEmpty(rdr) ? "\"" + "email" + "\"" + " : " + "\"" + "false" + "\"" : "\"" + "email" + "\"" + " : " + "\"" + "true" + "\"" + "\n";
}

但是当我使用JQuery时似乎永远不会发布.方法。我甚至试图用\\.来逃避它,但它仍然不起作用。

有人可以帮忙吗?

修改
使用encodeURI或不使用encodeURI没有任何区别。尝试将字符串转换为值也会产生相同的结果。

1 个答案:

答案 0 :(得分:0)

调试应用程序并通过在jsonlint.com等JSON验证程序中粘贴它来检查返回的JSON结果。从外观上看,你的JSON缺少逗号。

查看有关JSON on Wiki的更多信息。