0

感谢我之前提出的问题,在用户在以前的文本框中输入文本后,我已经成功地显示了一个新的文本框。

现在,我只想在原始 TextBox 中的文本经过验证后才显示新的 TextBox。
验证将确保原始 TextBox 中的数据不在数据库中。

文本框位于Ajax Update Panel. 不幸的是,我不能使用AutoPostBack事件,因为它有效地重置了 JavaScript,即使使用function pageLoad() .

我想使用 JavaScript 来验证数据库,并且到目前为止使用了以下代码:

Text.aspx 上的 JavaScript

<script type="text/javascript">
        function pageLoad() {
            $('#<%: txtRegisterEmail.ClientID %>').on('blur', function () {
                $.ajax({
                    type: "POST",
                    url: "Test.aspx/CheckEmail",
                    data: "{Email: '" + ('#<%: txtRegisterEmail.ClientID %>').value + "'}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: OnSuccess,
                    failure: function(response) {
                        alert(response);
                    }
                });
            });
        }

        function OnSuccess(response) {
            $('#<%: txtRegisterEmailConfirm.ClientID %>').slideDown();
        }
        //'input[name$="txtRegisterEmailConfirm"]'
    </script>

测试.aspx.cs

[System.Web.Services.WebMethod]
public static bool CheckEmail(string Email)
{
    int counter = 0;
    const string strSql = "SELECT memberEmail FROM vwGetMemberDetails";

    using (SqlCommand sqlComm = new SqlCommand(strSql, DataConn.Connect()) { CommandType = CommandType.Text })
    {
        using (SqlDataReader rdr = sqlComm.ExecuteReader())
        {
            while (rdr.Read())
            {
                counter = counter + 1;
            }
        }
    }

    return counter > 0;
}

这段代码唯一做的就是显示文本框(似乎没有验证)。我怎样才能使这项工作?

4

0 回答 0