我有一个注册表单,我想做一些这样的事情:当用户注册并输入用户名时,然后检查数据库中该用户是否已经在数据库中。这就是当用户输入用户名并移动到另一个字段时的原因然后检查一下。
所以请帮我解决这个问题,以及如何使用文本框事件。
答案 0 :(得分:0)
最好使用AJAX而不是服务器端事件来完成,这意味着您可以异步POST以获得更好的用户体验,例如
<script type="text/javascript">
var lookupTimer;
$('#username').change(function() {
clearTimer(lookupTimer); // cancel previous lookup if user types again
lookupTimer = setTimeout(function() {
$.post("myServer/checkUsername", { data: $(this).val() }, function(result) {
// handle result
});
}, 1000); // send query after 1 second when user finished typing
});
</script>
<input id="username" type="text" />
答案 1 :(得分:0)
由于您没有提供任何标记,我假设这样的标记。
<form id="form1" action="~/something.aspx" method="post">
<label>Username</label>:
<input type="text" id="username" name="username" onblur="validate();"/>
<br/>
<label>Password:</label>
<input type="text" id="password" name="password"/><br/>
<input type="submit" value="submit"/>
</form>
基本的想法是,当焦点出来时,你需要为用户名字段写一些javascript(onblur
event)
以下是上述代码的javascript。
<script type="text/javascript">
function validate()
{
//make an ajax call to retrieve the username
$.ajax({
url:'validate.aspx/ValidateUsername',
dataType: 'json',
//... make necessary adjustments in ajax call so as to
//call the web method in validate.aspx page
success: function(data){
if(!data.d){
alert('username already exists !');
document.getElementById('username').focus();
}
}
});
}
</script>
现在定义了你定义的ajax调用的webmethod。
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public static string ValidateUsername()
{
//Now query the database to check if the username exists.
//If the username exists return 'true' other wise return 'false'
}
希望这有帮助。
答案 2 :(得分:0)
我想在asp.net中使用丢失焦点事件进行注册页面,然后在使用输入名称时如何使用此项,然后检查此名称是否在数据库中,如果已存在则输入错误“用户名已存在”,否则请输入此名。