我在我使用以下代码创建的一个ASP.Net MVC视图上有一个表单
<% using (Html.BeginForm(null, null, FormMethod.Post))
使用此代码我无法控制,只要我知道设置表单的名称。我现在正在尝试编写一个javascript函数来提交表单,这可能是在不知道表单名称的情况下进行的吗?
由于
答案 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。