menudo Llegamos a tener problemas con los validadores .NET en elementos que están ocultos usando javascript/css (es decir, pantalla:. Ninguno)Ignorar .NET validadores si el elemento está oculto (display: none)
Por ejemplo (que puede ser errores de sintaxis, pero no se preocupe por ello)
<asp:CheckBox ID="chkNewsletter" runat="server" Checked="true" />
...
<div id='newsletterOnly'>
<asp:TextBox ID="txtEmail" runat="server" />
<asp:RequiredFieldValidator ID="vldEmail" ControlToValidate="txtEmail" ErrorMessage="Required" runat="server" />
</div>
con JavaScript:
$('#chkNewsletter').changed(function() {
$(this).is(':checked') ? $('#newsletterOnly').show() : $('#newsletterOnly').hide();
});
no debe validar txtEmail si Está oculto.
No se puede enviar el formulario si newsletterOnly está oculto, porque el RequiredFieldValidator sigue siendo eficaz apesar de que se oculta :(
Y ni siquiera puede ver el mensaje de error de validación porque está escondido
Está hay alguna forma de evitar esto?
que estoy tratando de evitar las devoluciones de datos para mejorar la experiencia del usuario.
me gustaría poder modificar .NET javascript para validar controles sólo cuando son visibles.
¿Ha intentado deshabilitar los elementos ocultos? Esperaría que esa sea la solución. –
¿Qué hay de la posibilidad de utilizar dos modelos de vista diferentes al publicar en el servidor: uno para cada una de las diferentes situaciones? Solo necesitarías publicar en dos rutas diferentes. – Eli
Como alternativa, necesitaría hacer su validación en javascript, en lugar de hacerlo en el servidor. – arcynum