Domanda

Stiamo scrivendo un'applicazione ASP.NET MVC. Per impostazione predefinita, se il browser del client ha Javascript, il gestore per ogni modulo nella pagina è impostato, da JavaScript, per essere uno che manda giù la presentazione di una "pipe" Ajax (progressive enhancement).

Ma, per una forma (in una pagina di più), mi piacerebbe questo gestore per essere bypassato / ignorato. C'è un modo semplice per fare questo? Forse l'override del gestore specificando mia onsubmit direttamente nel DOM -? O qualche altro metodo

Usiamo jQuery, quindi queste librerie sono disponibili per me.

È stato utile?

Soluzione

avrei molto probabilmente risolvere questo assegnando un attributo distintivo per la forma che rompe con i vostri standard (quello che non dovrebbe avere un comportamento AJAX) - qualcosa come class="oldschool". Nel codice JavaScript, quando agganciando il gestore di eventi presentare su moduli, Vorrei poi fare in modo di escludere qualsiasi forma con questo marchio speciale:

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

Aggiornamento: Per non per modificare qualsiasi file JavaScript esterno, e hanno il nuovo comportamento introdotto semplicemente modificando il codice HTML, in considerazione di fare qualcosa di simile:

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

Non è una bellezza, ma sembra per ottenere il lavoro fatto -. Almeno nei browser che ho a disposizione qui

Altri suggerimenti

Anche se non sono sicuro di capire cosa si intende per "dal DOM" Suppongo che non è possibile cambiare il codice originale ajax / js ma si dovrebbe essere in grado di inserire un po 'di tag script da qualche parte che corre dopo il codice che imposta l'Ajax presentare gestore.

Inoltre supponendo che il set gestore è in forma $("form").submit(...) o simile si potrebbe usare questo

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

Dato che questo viene eseguito dopo il codice originale js sarebbe sciogliere qualsiasi gestore il codice originale impostato per presentare l'azione di questa forma.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top