【问题标题】:Unobtrusive javascript: form not submitting onsubmit()不显眼的 javascript:表单未提交 onsubmit()
【发布时间】:2011-09-22 16:31:12
【问题描述】:

我正在使用启用了 UnobtrusiveJS 的 MVC 3。

我有一个使用 Ajax.BeginForm 创建的表单,其中有一个 DropDown。我有一个 onchange=this.form.onsubmit 处理程序,用于在值更改时提交表单。

问题是当我更改下拉列表时,我的浏览器控制台显示消息“未捕获的类型错误:对象 # 的属性 '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>
                }

【问题讨论】:

    标签: javascript asp.net-mvc-3


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回复。如原始帖子中所述,更改为 submit() 确实提交了表单,但不使用 ajax,因此整个页面更新显示操作的返回字符串。
    • 好吧,您收到错误是因为表单元素上没有“onsubmit”之类的东西。我不确定你必须做什么才能让 ASP ajax 工作。
    • 这里的重点是,如果我禁用 UnobtrusiveJavascript,那么它会神奇地在表单元素上找到“onsubmit”。我猜它用来做不引人注目的位的 javascripts 不能正常工作,因此启用它后,onsubmit 不再存在。
    • OK 那么你可能会看到如果你不调用“onsubmit”而不是调用“onsubmit”,$(this.form).submit() 会触发任何 jQuery 注册的提交处理程序。
    • 再次,如原帖中所述,调用 submit() 有效,但会刷新整个页面。我认为正在发生的事情是 MSAjax 代码在启用 UnobJS 时没有分配 onsubmit() 处理程序,但是由于 javascript 被集成到禁用 UnobJs 的 html 页面中,所以它工作正常。
    猜你喜欢
    • 2014-04-21
    • 2015-11-27
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    • 2013-03-13
    • 2012-01-26
    • 2018-07-23
    • 1970-01-01
    相关资源
    最近更新 更多