2

如何使用链接而不是按钮在 beginform 中提交表单

这就是我所拥有的,但我不想使用按钮

           <% using (Html.BeginForm())
             { %>
             - <%: role %>
             <%: Html.Hidden("Username", user) %>
             <%: Html.Hidden("RoleToDelete", role) %>
             <button type="submit">X</button>
          <% } %> 

谢谢

4

3 回答 3

2

在链接中添加一些 javascript:

<a href="#" onclick="document.nameofyourform.submit();">X</a>

您需要一些方法来识别您的表单,以便您可以调用其相关对象的提交方法,这样您生成的 html 看起来像:

<form id="myform" name="nameofyourform" action="..." method="...">
...
</form>

id 会让你这样做document.getElementById('myform'.submit(),并且名称将像<a>上面的示例一样工作。

当然,这一切都取决于 Javascript。如果您的目标是较旧的/缺乏 js 的浏览器,那么您能够提交表单的唯一方法是通过实际的提交按钮

于 2011-08-15T15:01:49.753 回答
1

由于您使用的是 MVC,我假设您还将使用 JQuery:

<a href="#" onclick="$(this).parents('form').submit();" >Submit</a>

缺点:

  • 按下回车时不起作用(解决方法:保留提交按钮但将其置于屏幕外)

  • 在浏览器上禁用 JS 时不起作用

于 2011-08-15T15:19:07.963 回答
0

您需要先使用 BeginForm 命名您的表单,然后您可以在链接的 onclick 事件中引用它。

<% using (Html.BeginForm("ActionName", "ControllerName", FormMethod.Post, new { id = "deletionform" }))
{ %>
- <%: role %>
<%: Html.Hidden("Username", user) %>
<%: Html.Hidden("RoleToDelete", role) %>
<a onclick="deletionform.submit();">X</button>
<% } %> 
于 2015-06-08T16:31:35.160 回答