感谢我之前提出的问题,在用户在以前的文本框中输入文本后,我已经成功地显示了一个新的文本框。
现在,我只想在原始 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;
}
这段代码唯一做的就是显示文本框(似乎没有验证)。我怎样才能使这项工作?