Pregunta

Estamos escribiendo una aplicación ASP.NET MVC. Por defecto, si el navegador del cliente tiene Javascript, el controlador para cada formulario en la página se fija, por JavaScript, que será uno que envía la presentación por un "tubo" Ajax (mejora progresiva).

Pero, por una forma (en una página de varias), me gustaría que este controlador va a ser excluida / ignorado. ¿Hay una manera simple de hacer esto? Tal vez reemplazando el controlador mediante la especificación de mi propio evento onsubmit directamente en el DOM - o algún otro método

Nosotros usamos jQuery, por lo que las bibliotecas están disponibles para mí.

¿Fue útil?

Solución

Lo más probable es resolver esto mediante la asignación de un atributo distintivo de la forma que rompe con los estándares (el que no debe tener un comportamiento AJAX) - algo así como class="oldschool". En el código JavaScript, al conectar el controlador de eventos presentar en formas, me gustaría a continuación, asegúrese de excluir cualquier forma con esta marca especial:

$('form:not(.oldschool)').submit(function() {
    // Do fancy AJAX stuff
});

Actualización: Para no para cambiar los archivos JavaScript externos, y tienen el nuevo comportamiento introducido simplemente modificando el código HTML, pensar en hacer algo como esto:

<form ... onsubmit="if (typeof $ == 'function') $(this).unbind('submit');">

No es belleza, pero parece hacer el trabajo -. Por lo menos en los navegadores que tengo disponible aquí

Otros consejos

Aunque no estoy seguro de entender lo que quiere decir con "del DOM" Asumo que no se puede cambiar el código original ajax / js pero usted debería ser capaz de insertar una pequeña etiqueta script alguna parte que se extiende después del código que establece los envíos Ajax manejador.

Además suponiendo que el conjunto manipulador está en la forma $("form").submit(...) o similar, podría utilizar este

$('selectorForYourForm').unbind('submit');

Como este código se ejecuta después del original JS sería desvincular cualquier manejador del código original establecido para la acción de envío de este formulario.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top