Я довольно новичок в этом. Я использую ASP.NET MVC C# LINQ to SQL.MVC jQuery submit form (без обновления страницы) от функции JavaScript
У меня есть страница редактирования, которая загружает авторов и все их книги. Книги загружаются по вызову Ajax.
<script type="text/javascript">
$(document).ready(function() {
LoadBooks();
});
function LoadBooks() {
$(".Books").hide();
$(".Books").load("/Books/Edit/<%= Model.AuthorID %>");
$(".Books").show('slow');
}
</script>
Эта часть работает нормально. Нагрузки страницы с информацией Автора, то нагрузка Книги (частичный вид в DIV ID = «Книга», просто с книгой Категорией и Названием книги):
<%@ 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>
<% } %>
Теперь на главном виде странице I хочу иметь ссылку. Когда щелкнули ссылку, я хочу сделать несколько вещей с помощью JavaScript/jQuery/Ajax/whatever. Первое, что я хочу сделать, это отправить форму книг (id = booksform) из частичного представления, а затем перейти к следующей функции jQuery. Таким образом, я нажимаю ссылку, которая вызывает функцию JavaScript. Эта функция должна вызывать/делать/выполнять подачу формы Книги.
Мне кажется, что я пробовал все, но я не могу получить свою форму для отправки и обработки без полной отправки/обновления страницы. (Обратите внимание, что когда полный запрос выполняется, действия, которые я ожидаю в контроллере, будут успешно выполнены). Я хочу, чтобы процесс/действие контроллера не возвращали ничего, кроме какого-либо индикатора успеха/отказа. (Я могу затем вызвать «LoadBooks();».? Снова обновить DIV на странице
Любые идеи
Что делать, если они нажимают ссылку (а не кнопку), которая находится за пределами формы? Как я могу присвоить форму переменной (var $ form)? Благодарю. – johnnycakes
Просто попробовал ваше предложение присвоить значение переменной переменной var $ form = document.getElementById ('bookform'); Ничего не происходит при нажатии ссылки. – johnnycakes
Я обновил свой ответ. getElementById возвращает объект javascript, а не объект jquery, вместо этого используйте $ ("# bookform"). –