ASP.Net MVC, отправить форму, используя JavaScript - PullRequest
30 голосов
/ 07 июня 2009

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

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

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

Спасибо

Ответы [ 5 ]

61 голосов
/ 07 июня 2009

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

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

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

просто сделайте это:

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

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

10 голосов
/ 05 сентября 2011

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

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

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

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

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

3 голосов
/ 07 июня 2009

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

document.forms[0].

Чтобы вы могли добавить ссылку:

<a href="javascript:document.forms[0].submit()">submit form</a>
1 голос
/ 23 октября 2010

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

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

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

1 голос
/ 07 июня 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...