不引人注目的javascript:表单不提交onsubmit()

时间:2011-06-25 17:21:45

标签: javascript asp.net-mvc-3

我正在使用启用了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>
                }

1 个答案:

答案 0 :(得分:0)

对于“更改”处理程序,它应该只是this.form.submit()