ups, justo estaba por decirte que mires el código que generan los
validadores y los llames a manopla, bue, tarde :P

saludos, Leonardo.

2009/5/11 Leandro Tuttini <[email protected]>:
>
> hola,
>
> Les queria comentar que puede dar con la solucion.
>
> Calling ASP.net validators with javascript
> http://www.codeproject.com/KB/aspnet/JavascriptValidation.aspx
>
>
> Modifique la funcion javascript de la siguiente forma:
>
> function saveGroup() {
>
>     if (Page_ClientValidate() == false) {
>        return;
>     }
>
>         var code = $("#<%=txtCode.ClientID%>").getValue();
>         var description = $("#<%=txtName.ClientID%>").getValue();
>
>
>         $.ajax({
>             type: "POST",
>             url: "GroupsCalls.aspx/SaveGroup",
>             data: "{'code':'" + code + "','description':'" + description +
> "'}",
>             contentType: "application/json; charset=utf-8",
>             dataType: "json",
>             success: function(result) {
>                 alert(result.d);
>             },
>             error: function(XMLHttpRequest, textStatus, errorThrown) {
>                 alert(textStatus + ": " + XMLHttpRequest.responseText);
>             }
>         })
>
>
> O sea agregue el milagroso Page_ClientValidate() y eso es todo.
>
> Yo venia buscando la solucion por otro lado, hasta que una luz me hizo mirar
> si habia alguna funcionalidad para forzar la validacion de los controles de
> asp.net desde javascript.
>
> Gracias
>
>
> --- El lun 11-may-09, Leandro Tuttini <[email protected]>
> escribió:
>
> De: Leandro Tuttini <[email protected]>
> Asunto: [puntonet] jQuery y RequiredFieldValidator
> Para: [email protected]
> Fecha: lunes, 11 de mayo de 2009, 1:38 pm
>
> hola,
>
> Se me presento el siguiente problema.
>
> Resulta que intento hacer uso de jQuery, pero se em complico con los
> controles de validaciones de asp.net.
>
> A ver le comento en la pagina tengo varios textbox con sus respectivos
> RequiredFieldValidator y RegularExpressionValidator.
>
> Algo asi:
>
> <asp:TextBox ID="txtCode" Name="txtCode" runat="server" MaxLength="10" />
>
> <asp:RequiredFieldValidator ID="reqCode" runat="server"
> ControlToValidate="txtCode" SetFocusOnError="true"
> ErrorMessage="<%$Resources:MainResources,ERR_CODE%>" Display="Dynamic" />
>
> <asp:RegularExpressionValidator ID="regCode" runat="server"
> ControlToValidate="txtCode"
> Display="Dynamic" ErrorMessage="<%$Resources:MainResources,ERR_CODEFORMAT%>"
> SetFocusOnError="True"
> ValidationExpression="[^&lt;&gt;'%*]+" ></asp:RegularExpressionValidator>
>
> <asp:Button ID="btnSave" runat="server" OnClientClick="javascript:
> saveGroup(); return false;" Text="Guardar" />
>
> Nota: esto por supuesto no esta asi tirado, en la pagina esta en tablas bien
> ubicado, lo posteo asi para que sea mas legible.
> Alli solo puse el textbox Code, pero existe otro para el nombre o la
> descripcion.
>
>
> El javascript seria el siguiente:
>
>     function saveGroup() {
>
>         var code = $("#<%=txtCode.ClientID%>").getValue();
>         var description = $("#<%=txtName.ClientID%>").getValue();
>
>         $.ajax({
>             type: "POST",
>             url: "GroupsCalls.aspx/SaveGroup",
>             data: "{'code':'" + code + "','description':'" + description +
> "'}",
>             contentType: "application/json; charset=utf-8",
>             dataType: "json",
>             success: function(result) {
>                 alert(result.d);
>             },
>             error: function(XMLHttpRequest, textStatus, errorThrown) {
>                 alert(textStatus + ": " + XMLHttpRequest.responseText);
>             }
>         })
>
> Como observaran, si presiono el boton "Guardar" este ejecuta el javascript,
> sin tener en cuanta las validaciones de asp.net.
> Ya que el atributo OnClientClick anula las validaciones de asp.net.
>
> La pregunta es, como puede hacer para ejecutar las validaciones de los
> controles asp.net antes de llamar a la funcion javascript "saveGroup" ?
> Y por supuesto si alguna falla evitar esta llamada.
> Seria como ejecutar la validacion pero en lugar de evitar el submit del
> formaulario, seria evitar la llamada a la funcion javascript "saveGroup".
>
> Buscando pude ver que existe en jQuery un metodo de nombre:
> ValidatorEnable().
> Pero esta solo sive para desplegar el texto de la validacion y no para
> ejecutarla.
>
> How to manage ASP.NET validation from Javascript with jQuery
> http://codeclimber.net.nz/archive/2008/05/14/How-to-manage-ASP.NET-validation-from-Javascript-with-jQuery.aspx
>
>
> O sea en este caso podria hacer:
>
>     function saveGroup() {
>
>         var code = $("#<%=txtCode.ClientID%>").getValue();
>         var description = $("#<%=txtName.ClientID%>").getValue();
>
>         if (code == "")
>         {
>            ValidatorEnable($("#<%= reqCode.ClientID %>")[0], true);
>            return;
>         }
>         else
>            ValidatorEnable($("#<%= reqCode.ClientID %>")[0], false);
>
>         if (description == "")
>         {
>            ValidatorEnable($("#<%= reqName.ClientID %>")[0], true);
>            return;
>         }
>         else
>            ValidatorEnable($("#<%= reqName.ClientID %>")[0], false);
>
>
>         $.ajax({
>             type: "POST",
>             url: "GroupsCalls.aspx/SaveGroup",
>             data: "{'code':'" + code + "','description':'" + description +
> "'}",
>             contentType: "application/json; charset=utf-8",
>             dataType: "json",
>             success: function(result) {
>                 alert(result.d);
>             },
>             error: function(XMLHttpRequest, textStatus, errorThrown) {
>                 alert(textStatus + ": " + XMLHttpRequest.responseText);
>             }
>         })
>
>
> Como veran agrego manualmente la validacion y con ValidatorEnable(), se
> muestra el mensaje del control de RequiredFieldValidator.
>
> La consulta es como valido el RegularExpressionValidator, este es mas
> complejo.
>
> Es una macana que el ValidatorEnable() de jQuery no evalue la expresion y
> devuelva si se paso correctamente o no.
>
> Bueno espero se entienda el problema, sino puedeo aportar mas info.
> Saludos
>
>
> ________________________________
> Yahoo! Cocina
> Recetas prácticas y comida saludable
> Visitá http://ar.mujer.yahoo.com/cocina/
>
> ________________________________
> Yahoo! Cocina
> Recetas prácticas y comida saludable
> Visitá http://ar.mujer.yahoo.com/cocina/

Responder a