Reputation: 17382
I have a form on one of my ASP.Net MVC views that I created using the following code
<% using (Html.BeginForm(null, null, FormMethod.Post))
Using this code I have no control as far as I am aware of setting the name of the form. I'm now trying to write a javascript function to submit the form, is this possible without knowing the forms name?
Thanks
Upvotes: 35
Views: 108284
Reputation: 23766
You can use jquery to submit the form:
<% using (Html.BeginForm(null, null, FormMethod.Post, new { id = "myForm"})) { %>
(the last part is for htmlAttributes parameter)
just do this:
$("#myForm").submit();
and do not forget to include jquery-1.2.6.js that comes with mvc (or use a higher version).
Upvotes: 72
Reputation: 1255
If you want to use jQuery without naming the form, and you will only have one form on the page, you can just add a link like this to your page:
<a href="#" class="submitForm">Submit</a>
And then add this jQuery which will wire up the link to submit every form:
$(document).ready(function () {
$("a.submitForm").click(function () {
$("form").submit();
});
});
So this is a way of doing it (the way I just did it on my site) that doesn't require you to name the form - provided you only have one. Saying that, you may want to submit multiple forms ..
Upvotes: 12
Reputation: 101
This simple solution submit the Ajax form without post-back
<a href="#" onclick="$('#sbmt').trigger('click'); return false">Generate</a>
<input id="sbmt" type="submit" style="visibility: hidden" />
Works in IE and Firefox.
Upvotes: 1
Reputation: 47587
If you need to set name of the form, use object htmlAttributes parameter of BeginForm method.
<% using
(Html.BeginForm(null, null, FormMethod.Post,
new {name="MySuperForm"})) %>
For submitting forms through javascript, check out this post. Might be useful.
Upvotes: 1
Reputation: 18610
If you have only one form on that page, you can access the form by using:
document.forms[0].
So you could add a link:
<a href="javascript:document.forms[0].submit()">submit form</a>
Upvotes: 4