Подтвердить что ты не робот

ASP.Net MVC, отправьте форму с помощью javascript

У меня есть форма на одном из моих представлений MVC ASP.Net, которые я создал с помощью следующего кода

 <% using (Html.BeginForm(null, null, FormMethod.Post))

Используя этот код, я не могу контролировать, насколько я знаю, как установить имя формы. Теперь я пытаюсь написать функцию javascript для отправки формы, возможно ли это, не зная названия форм?

Спасибо

4b9b3361

Ответ 1

Вы можете использовать jquery для отправки формы:

<% using (Html.BeginForm(null, null, FormMethod.Post, new { id = "myForm"})) { %>

(последняя часть для параметра htmlAttributes)

просто выполните это:

$("#myForm").submit();

и не забудьте включить jquery-1.2.6.js, который поставляется с mvc (или использует более высокую версию).

Ответ 2

Если вы хотите использовать jQuery без именования формы, и у вас будет только одна форма на странице, вы можете просто добавить ссылку на эту страницу:

<a href="#" class="submitForm">Submit</a>

Затем добавьте этот jQuery, который подключит ссылку, чтобы отправить каждую форму:

$(document).ready(function () {
    $("a.submitForm").click(function () {
        $("form").submit();
    });
});

Итак, это способ сделать это (способ, которым я только что сделал это на своем сайте), который не требует, чтобы вы написали форму - при условии, что у вас ее есть. Говоря это, вы можете отправить несколько форм.

Ответ 3

Если на этой странице есть только одна форма, вы можете получить доступ к форме, используя:

document.forms[0].

Итак, вы можете добавить ссылку:

<a href="javascript:document.forms[0].submit()">submit form</a>

Ответ 4

Если вам нужно задать имя формы, используйте параметр htmlAttributes объекта метода BeginForm.

<% using 
  (Html.BeginForm(null, null, FormMethod.Post,
     new {name="MySuperForm"})) %>

Для отправки форм через javascript, этот пост. Может быть полезно.

Ответ 5

Это простое решение представляет форму Ajax без обратной записи

<a href="#" onclick="$('#sbmt').trigger('click'); return false">Generate</a>
<input id="sbmt" type="submit" style="visibility: hidden" />

Работает в IE и Firefox.