我使用MVC3 Helper生成我的Ajax表单,如下所示:
@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()"}); }
我只是找不到在复选框的change事件上提交表单的正确方法。我不希望我的用户单击提交按钮。
HTMLAttribute有效,但是在更改时发生回发而不是ajax请求。
有人知道答案吗?
首先,在表单内创建一个提交按钮,然后通过设置属性将其隐藏style="display:none;"。然后,而不是this.form.submit()在onchange事件中使用,请使用以下命令:
style="display:none;"
this.form.submit()
$(this).parents('form:first').find(':submit')[0].click();
这将调用jquery.unobtrusive-ajax.js脚本,并完成您的Ajax提交。