método do servidor chamada JQuery Validator Plugin Asp.Net
-
22-07-2019 - |
Pergunta
Eu uso o JQuery Validation plugin de validar um formulário ( http://docs.jquery.com / Plugins / Validação / )
Por exemplo, eu posso validar um e-mail em um formulário.
O que eu gostaria de fazer é validar se o nome de usuário escolhido já existe. Então, eu preciso chamar um método servidor que consulta o banco de dados. Como posso fazer isso?
Atualização
De resposta balexandre, eu tente o seguinte:
$.validator.addMethod("userName",
function(value, element)
{
$.get
(
"CheckUser.aspx?User=" + value,
function(data)
{
if (data == "True")
{
return false;
}
else if (data == "False")
{
return true;
}
else
{
alert(data);
}
}
);
},
"User already exists");
$(document).ready
(
function()
{
$("#aspnetForm").validate
(
{
rules:
{
<%=txtUserName.UniqueID %>:
{
required: true,
email: true,
userName: true
}
}
}
);
}
);
Na resposta, eu escrevo um booleano (Verdadeiro ou Falso) em vez de 1 OU 0.
Eu sei que a minha função de validação é chamada. O problema é que é sempre mostrar a mensagem de erro mesmo se o usuário não existe. Eu tento colocar uma mensagem de alerta antes do retorno verdade para ver se ele de alcance, e é. Então eu não entendo, por que ele está não funciona ...
Solução
bastante fácil e é uma thcnique bom que eu aplico muito sobre meus projetos
1 - criar uma página aspx chamado verifyUserAvailability.aspx com código-behind file
2 - excluir todas as linhas, exceto a primeira no arquivo aspx
3 - no código-behind arquivo dentro do Page_Load chamar evento seu banco de dados como
protected void Page_Load(object sender, EventArgs e) {
string username = Request["usr"];
int r = 0;
if(!String.IsNullOrEmpty(username))
if( yourDAL.getUserAvailability(username) )
// your method would send true if user is available to be used
r = 1;
Response.Clear();
Response.Write(r);
Response.Flush();
}
4 - agora em sua página de formulário, crie um botão como
<input id="btnCheckAvailability" type="button"
value="Check availability"
onclick="javascript:checkAvailability();" />
5 - criar o método checkAvailability ()
<script type="text/language">
function checkAvailability() {
var $user = $("#UsernameInputBox");
$.get("verifyUserAvailability.aspx?usr=" + $user.val(), function(data) {
// this will call the page passing the username and return 1 or 0
if( data == "1" )
$user.css("background-color", "green");
else
$user.css("background-color", "red");
});
}
</script>
Outras dicas
Isso deve fazer o truque ...
http://riderdesign.com /articles/Check-username-availability-with-JQuery-and-ASP.NET.aspx
ou ...
Um mostra Resposta Como chamar um serviço e o segundo mostra como chamar um método de página.