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="[^<>'%*]+" ></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 http://ar.mujer.yahoo.com/cocina/
