Domanda

sto cercando di presentare il mio modulo di Ajax con jQuery. chiamando Tuttavia la funzione di presentare () fa sì che l'intera pagina per aggiornare. Si deve solo eseguire la parte onSubmit del modulo (che restituisce false in modo che la pagina non deve aggiornare).

<%Ajax.BeginForm("AllocateAndUpdateMech", 
  New With {.Controller = "Planning", 
            .Id = Model.Id}, 
            New AjaxOptions With {
                       .LoadingElementId = "loading", 
                       .UpdateTargetId = Model.Id & "_alloc"}, 
            New With {.id = "allocate_" & Model.Id & "_" & item.UserId}
)%>
<%Html.Hidden("mechId", item.UserId)%>
<a href="javascript:void(0);" onclick="$('#<%="allocate_" & Model.Id & "_" & item.UserId %>').submit();">Allocate: <%=item.UserName%></a>
<%Html.EndForm()%>
È stato utile?

Soluzione

Se si utilizza l'Ajax.BeginForm HTML non puoi semplicemente commettere la forma, perché la forma è in qualche modo collegato con ASP.NET MVC Ajax.

Ci sono 3 soluzioni:

più semplice e migliore modo

utilizzare jQuery $ .ajax per commettere la forma

facile, ma strano modo

Mettere un pulsante di invio del modulo. Impostarlo su nascosto e clic su di esso per jquery.

Difficile ma la risposta alla tua domanda

L'ho visto da qualche parte che si può ancora fare esattamente ciò che si descrive, ma era una soluzione che non ha ancora un aspetto gradevole.

Ecco come il suo fare presentare il modulo di esempio

Altri suggerimenti

Quando si chiama inviare () sulla forma che non chiama la funzione onSubmit che è stato creato utilizzando tale funzionalità modulo ajax. Avrete bisogno di chiamare le forme OnSubmit direttamente

es $("#ViewCartPage form").onsubmit() o meglio solo this.form.onsubmit()

Non dimenticate di includere i parametri che che sono necessari dall'evento Sys.Mvc.AsyncForm.handleSubmit (non so cosa sono come io non lo uso).

Vorrei davvero considerare cadere biblioteca ms ajax js e basta attaccare con jQuery. MS js librerie sono piene di fango scritto male invadente che basta fare le cose più complicate per nessun motivo. Le cose sono molto più semplici utilizzando solo jquery.

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