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="[^<>'%*]+" ></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/
