Je suis assez nouveau à tout cela. J'utilise ASP.NET MVC C# LINQ to SQL.MVC jQuery soumettre formulaire (sans actualisation de la page) de la fonction JavaScript
J'ai une page d'édition qui charge les auteurs et tous leurs livres. Les livres sont chargés via un appel Ajax.
<script type="text/javascript">
$(document).ready(function() {
LoadBooks();
});
function LoadBooks() {
$(".Books").hide();
$(".Books").load("/Books/Edit/<%= Model.AuthorID %>");
$(".Books").show('slow');
}
</script>
Cette partie fonctionne correctement. La page se charge avec les informations de l'auteur, la charge des livres (une vue partielle dans un id DIV = « Livres », juste avec la catégorie Livre et Titre du livre):
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Solution.Controllers.BooksController+BooksViewModel>" %>
<% using (Html.BeginForm(null,null, FormMethod.Post,new { id = "bookform" }))
{%>
<fieldset>
<legend>Books</legend>
<%int i = 0;
foreach (var book in Model.Books)
{%>
<%= book.BookID%>
<%= Html.Hidden("book[" + i + "].BookID", book.BookID) %>
<%= Html.DropDownList("book[" + i + "].CatID", new SelectList(Model.Categories, "CatID", "CatTitle", book.CatID))%>
<%= Html.ValidationMessage("CatID", "*")%>
<%= Html.TextBox("book[" + i + "].BookTitle", book.BookTitle)%>
<%= Html.ValidationMessage("BookTitle", "*")%>
<br />
<%i++;
} %>
</fieldset>
<% } %>
Maintenant, sur la page principale de vue I vouloir avoir un lien. Lorsque le lien est cliqué, je veux faire quelques choses via JavaScript/jQuery/Ajax/peu importe. La première chose que je veux arriver est de soumettre le formulaire Books (id = booksform) de la vue partielle, puis passer à la fonction jQuery suivante. Donc, je clique sur un lien qui appelle une fonction JavaScript. Cette fonction devrait appeler/faire/exécuter la soumission du formulaire Livres. J'ai l'impression d'avoir tout essayé, mais je n'arrive pas à soumettre et traiter mon formulaire de livres sans soumettre une soumission/actualisation complète de la page. (Notez que lorsque l'envoi complet est effectué, les actions que j'attends du contrôleur sont traitées avec succès). Je veux que le processus/l'action du contrôleur ne renvoie rien d'autre qu'une indication de succès/échec. (Je peux alors appeler « LoadBooks(); ».? Nouveau pour rafraîchir la DIV sur la page
Toutes les idées
Que se passe-t-il s'ils cliquent sur un lien (pas un bouton) situé en dehors du formulaire? Comment puis-je affecter le formulaire à la variable (var $ form) alors? Merci. – johnnycakes
Vous venez d'essayer votre suggestion en assignant le de à la variable en utilisant var $ form = document.getElementById ('bookform'); Rien ne se passe lorsque le lien est cliqué. – johnnycakes
J'ai mis à jour ma réponse. getElementById renvoie l'objet javascript et non l'objet jquery, utilisez $ ("# bookform") à la place. –