我正在使用启用了UnobtrusiveJS的MVC 3。
我有一个用Ajax.BeginForm创建的表单,其中有一个DropDown。我有一个onchange = this.form.onsubmit处理程序,以便在值更改时提交表单。
问题是当我更改下拉列表时,我的浏览器控制台显示消息“对象#的未捕获TypeError:属性'onsubmit'不是函数”。
如果我将处理程序更改为this.form.submit(),它会提交表单,但没有ajax。
我引用了jquery,jquery-unobtrusive-ajax和MS Ajax js文件,但没有运气。
如果我禁用UnobtrusiveJS,它可以正常工作。
有什么想法吗?
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftAjax.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.js")" type="text/javascript"></script>
查看:
@using (Ajax.BeginForm("AddToGroup", new AjaxOptions() { UpdateTargetId = "statusText" }))
{
@Html.Hidden("username", @friendProfile.Username)
@Html.DropDownList("groupId", @Model.UserGroups, "Add to group...", new { @onchange = "this.form.onsubmit()" })
<input type="submit" value="Submit" />
<span id="statusText"></span>
}
答案 0 :(得分:0)
对于“更改”处理程序,它应该只是this.form.submit()
。