I use The MVC3 Helper to generate my Ajax form like this:
@using (Ajax.BeginForm("Attended", "Lesson", new AjaxOptions
{
HttpMethod = "GET",
InsertionMode = InsertionMode.InsertAfter,
UpdateTargetId = "mdl" + item.ID
}))
{
@Html.HiddenFor(modelItem => item.ID);
@Html.CheckBox("Attended", item.Attended, new { OnChange = "javascript:this.form.submit()"});
}
I just don't find the proper way to submit the Form on the change event of the checkbox.
I don't want my users to click the submit button.
The HTMLAttribute works, but on the change a postback happens instead of an ajax request.
Does anybody know the answer?
Best Answer
First, create a submit button inside your form, and hide it by setting the attribute
style="display:none;"
. Then, instead of usingthis.form.submit()
in your onchange event, use the following:This will invoke the jquery.unobtrusive-ajax.js script, and complete your Ajax submission.