ASP.Net MVC,使用javascript提交表单

时间:2009-06-07 16:28:17

标签: javascript asp.net-mvc

我在我使用以下代码创建的一个ASP.Net MVC视图上有一个表单

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

使用此代码我无法控制,只要我知道设置表单的名称。我现在正在尝试编写一个javascript函数来提交表单,这可能是在不知道表单名称的情况下进行的吗?

由于

5 个答案:

答案 0 :(得分:61)

您可以使用jquery提交表单:

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

(最后一部分是针对htmlAttributes参数)

这样做:

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

并且不要忘记包含mvc附带的jquery-1.2.6.js(或使用更高版本)。

答案 1 :(得分:10)

如果您想在不命名表单的情况下使用jQuery,并且页面上只有一个表单,您只需在页面中添加如下链接:

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

然后添加这个jQuery,它将连接链接以提交每个表单:

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

所以这是一种做到这一点的方式(就像我在我的网站上做的那样),不需要你为表单命名 - 前提是你只有一个。说,你可能想提交多个表格..

答案 2 :(得分:3)

如果该页面上只有一个表单,您可以使用以下方式访问该表单:

document.forms[0].

所以你可以添加一个链接:

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

答案 3 :(得分:1)

如果需要设置表单名称,请使用BeginForm方法的object htmlAttributes参数。

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

要通过javascript提交表单,请查看this post。可能有用。

答案 4 :(得分:1)

这个简单的解决方案提交了Ajax表单而没有回发

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

适用于IE和Firefox。