JQuery Validator Plugin Método del servidor de llamadas Asp.Net
-
22-07-2019 - |
Pregunta
Utilizo el complemento de validación JQuery para validar un formulario ( http://docs.jquery.com / Plugins / Validación / )
Por ejemplo, puedo validar un correo electrónico en un formulario.
Lo que me gustaría hacer es validar si el nombre de usuario elegido ya existe. Entonces, necesito llamar a un método de servidor que consulte la base de datos. ¿Cómo puedo hacer eso?
ACTUALIZACIÓN
De la respuesta de balexandre, intento lo siguiente:
$.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
}
}
}
);
}
);
En la Respuesta, escribo un booleano (Verdadero de Falso) en lugar de 1 o 0.
Sé que mi función de validación es call. El problema es que siempre muestra el mensaje de error incluso si el usuario no existe. Intento poner un mensaje de alerta antes del retorno verdadero para ver si es alcance, y lo es. Entonces no entiendo, por qué no funciona ...
Solución
bastante fácil y es una buena técnica que aplico mucho en mis proyectos
1: cree una página aspx llamada generateUserAvailability.aspx con un archivo de código subyacente
2 - eliminar todas las líneas excepto la primera en el archivo aspx
3: en el archivo de código subyacente dentro del evento Page_Load , llame a su base de datos 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: ahora en su página de formulario, cree un botón como
<input id="btnCheckAvailability" type="button"
value="Check availability"
onclick="javascript:checkAvailability();" />
5 - crea el 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>
Otros consejos
Esto debería hacer el truco ...
http://riderdesign.com /articles/Check-username-availability-with-JQuery-and-ASP.NET.aspx
O ...
Una respuesta muestra cómo llamar a un servicio & amp; el segundo muestra cómo llamar a un método de página.
Llamar a un método del lado del servidor ASP.NET a través de jQuery