Complemento jQuery Validation en formularios web ASP.NET

Realmente me gustaría utilizar el complemento jQuery Validation en mi aplicación ASP.NET Web Forms (no MVC). Me resulta más fácil que agregar validadores asp en todas partes y establecer el control para validar el campo en todos ellos.

Solo estoy teniendo algunos problemas al configurar la clase como esta clase = “correo electrónico requerido”, que creo que tiene algo que ver con tener una etiqueta de formulario dentro de la etiqueta principal del formulario.

También me encuentro con problemas cuando llamo a jquery para validar usando los nombres que se destrozan en un control asp

// validate signup form on keyup and submit $("#signupForm").validate({ rules: { username: { required: true, minlength: 2 }, }, messages: { username: { required: "Please enter a username", minlength: "username at least 2 characters" }, }. ....... 

porque esto

  

rinde como

  

y destroza el nombre. Puedo obtener el ClientID usando pero eso no funciona con ClientName

¿Alguien ha tenido éxito al usar el plugin validador jquery con asp.net? Si es así, ¿qué pasa con el uso de formularios múltiples, como utilizar grupos de validación por separado?

Puede verificar la función de agregar reglas , pero básicamente esto es lo que puede hacer:

 jQuery(function() { // You can specify some validation options here but not rules and messages jQuery('form').validate(); // Add a custom class to your name mangled input and add rules like this jQuery('.username').rules('add', { required: true, messages: { required: 'Some custom message for the username required field' } }); });  

De esta forma, no hay necesidad de preocuparse por los identificadores de mierda generados por el motor de formularios web.

A continuación, se incluyen ejemplos del uso del complemento jQuery Validation con WebForms y la emulación del concepto de grupos de validación . En realidad funciona bastante bien una vez que suaviza un par de problemas.

 $("#signupForm").validate({ rules: { < %= tbUsername.UniqueID %>: { required: true, minlength: 2 }, }, messages: { < %= tbUsername.UniqueID %>: { required: "Please enter a username", minlength: "username at least 2 characters" }, });  

Puede verificar xVal.webForms aquí: http://xvalwebforms.codeplex.com/

Probó lo que dijo Darin Dimitrov y funciona perfectamente, pero si no quiere establecer una clase específica para cada uno de sus campos, puede usar los selectores de jQuery:

 $('form').validate(); $('input[id$=Username]').rules('add', { required: true, messages: { required: 'Some custom message for the username required field' } });  

La mejor solución es usar “< % = tbUsername.UniqueID%>” en lugar de tbUsername en jQuery rules.

 $("#signupForm").validate({ rules: { "< %=tbUsername.UniqueID %>": { required: true, minlength: 2 }, }, messages: { "< %=tbUsername.UniqueID %>": { required: "Please enter a username", minlength: "username at least 2 characters" }, }. 

Recientemente publiqué un archivo de parche para xVal.WebForms que resuelve la retransmisión de múltiples formularios en el conocido grupo de validación de ASP.Net. Este parche también es compatible con la propiedad ASP.Net CausesValidation.

Puede leer sobre esto aquí: http://cmendible.blogspot.com/

Una buena forma de hacerlo es usar:

< % = textbox.Name%> o < % = textbox.ClientId%> siempre que necesite hacer referencia a un elemento del servidor.

es decir

 var phoneNumb = $('#< %= tPhone.ClientID %>').val(); 

o

 $("#signupForm").validate({ rules: { < %= username.Name %>: { required: true, minlength: 2 }, }, messages: { < %= username.Name %>: { required: "Please enter a username", minlength: "username at least 2 characters" }, }. 

…….

Para SharePoint 2010 encontré con la carga de diferentes controles de usuario como vistas (a través de ajax) que esto funcionó si mueve Javascript a una biblioteca y no puede usar tags de servidor para los identificadores de control de esta manera:

por ejemplo, #< %= tPhone.ClientID %>

 $('input[id$=tPhone]').rules('add', { required: true, messages: { required: 'Some custom message for the username required field' } }); 

Además de esto, si carga dinámicamente un control de usuario a través de Ajax, entonces no puede usar $ (documento) .Ready Deberá encapsular el jQuery en una biblioteca de funciones si está cargado en la página Control de usuario en (evento del lado del servidor) pero está bien. en el escenario cargado a través de Ajax con el Panel de Actualización, no bailará.

No he intentado cargar controles de usuario a través de jQuery todavía, parece pesado y parece cargar toda la página, aunque quizás un poco más rápido o no.

Las pruebas que compararon las técnicas de carga mostraron que el Panel de actualización fue tan rápido y resultó en el mismo o menor tamaño de página que otras técnicas y básicamente cargó datos más rápidos o más rápidos o más rápidos.

Recomiendo usar jQuery.simple.validator, su validador fácil, liviano y personalizable compatible con formularios web asp.net, porque básicamente puede realizar validaciones en cualquier contenedor, no solo

https://github.com/v2msoft/jquery.simple.validator

Te recomiendo que revises el plugin y la documentación. Uso:

  



La información en este artículo me llevó a utilizar Control.ClientID cuando busco una coincidencia con jQuery … Información muy útil …