Desactivar la validación del lado del cliente en MVC 3 botón" cancelar " enviar
OK, he estado probando cosas durante horas y me vendría bien algo de ayuda. Estoy tratando de implementar una página en MVC 3 que tiene botones "atrás" y "siguiente". Cuando se hace clic en el botón atrás, quiero desactivar la validación MVC del lado del cliente para que mi método de acción se ejecute y envíe al usuario a la página web lógica anterior. He intentado esto:
<script type="text/javascript">
document.getElementById("backButton").disableValidation = true;
</script>
Y esto:
<input type="submit" name="backButton" value="← Back"
title="Go back to step 1." disableValidation="true" />
Pero no importa qué, el JavaScript de validación del lado cilent se activa y no deja que el botón haga su post-back. Soy pensar que disableValidation
solo funciona en MVC 2 tal vez, y se supone que debo estar haciendo algo más en MVC 3, pero parece que no puedo encontrar ningún ejemplo.
3 answers
¿Qué es esta fuerza mística que hace que la respuesta se revele tan pronto como publicas una pregunta en algún lugar?
Parece que en MVC 3 deshabilita la validación del lado del cliente en un botón al agregarle la clase "cancel". Así que en mi ejemplo:
<input type="submit" name="backButton" value="← Back"
title="Go back to step 1." class="cancel" />
Funciona muy bien. Y tampoco se necesita ningún atributo ID. Si tiene una clase de estilo real en el botón, simplemente haga esto:
<input type="submit" name="backButton" value="← Back"
title="Go back to step 1." class="style-name cancel" />
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-19 18:16:08
Los scripts de validación parecen estar vinculados al tipo de envío input
. Al cambiar cancel
a un botón, la validación se omite:
<button type="button" onclick="document.location.href('Index')">Cancel</button>
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-21 06:12:50
Uso esto para el botón
$("button").each(function (elem) {
var button = $($("button")[elem]);
button.addClass('cancel');
if (button.attr('type') == 'submit') {
button.click(function (e) {
var validator = button.closest('form').validate();
validator.cancelSubmit = true;
});
}
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-21 08:42:38