以前の質問のおかげで、ユーザーが以前の TextBox にテキストを入力した後、新しい Textbox を正常に表示できました。
ここで、元の TextBox のテキストが検証された後にのみ、新しい TextBox を表示したいと思います。
検証により、元の TextBox のデータがデータベースにないことが確認されます。
テキスト ボックスはAjax Update Panel
. 残念ながら、私はAutoPostBack
イベントを使用することはできません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>
Test.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;
}
このコードが行う唯一のことは、テキスト ボックスを表示することです (検証なしのようです)。どうすればこれを機能させることができますか?