J'ai finalement réussi à faire fonctionner la solution de Darin, mais j'ai d'abord fait quelques erreurs, ce qui a entraîné un problème similaire à David (dans les commentaires ci-dessous, la solution de Darin), où le résultat était publié sur une nouvelle page.
Parce que je devais faire quelque chose avec le formulaire après le retour de la méthode, je l'ai stocké pour une utilisation ultérieure:
var form = $(this);
Cependant, cette variable n'avait pas les propriétés "action" ou "méthode" qui sont utilisées dans l'appel ajax.
$(document).on("submit", "form", function (event) {
var form = $(this);
if (form.valid()) {
$.ajax({
url: form.action, // Not available to 'form' variable
type: form.method, // Not available to 'form' variable
data: form.serialize(),
success: function (html) {
// Do something with the returned html.
}
});
}
event.preventDefault();
});
Au lieu de cela, vous devez utiliser la variable "this":
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function (html) {
// Do something with the returned html.
}
});