【问题标题】:Ajax form submitted in jQuery not firing events在 jQuery 中提交的 Ajax 表单没有触发事件
【发布时间】:2013-08-14 21:56:14
【问题描述】:

我有一个 ajax 表单,当我通过 jQuery 提交表单时,不会触发事件处理程序。谁能发现我的方式错误?

index.cshtml

//abbreviated
@Html.Partial("_derp")
//abbreviated
<input type="button" value="Derpina" onclick="derpinski()" id="derpButton" />
//abbreviated
<div id="spinner" style="display: none;">
    <img src="../images/loading.gif">
</div>

_derp.cshtml

<div>
    @using (Ajax.BeginForm("DoTheDerp", "Derp", null, new AjaxOptions()
        {
            LoadingElementId = "spinner",
            OnBegin = "DerpBegin", 
            OnComplete = "DerpComplete"
        }, new {id = "theDerpForm"}))
    {
        //abbreviated stuff
    }
</div>

derp.js

function derpinski()
{
    //abberviated
    $("#theDerpForm").submit();
}

function DerpBegin()
{
    alert("begin");  // never fires
}

function DerpComplete()
{
    alert("complete") // never fires
}

我的“微调器”从未显示,也没有触发我的开始和完成功能。我在某处读到我需要包含 unobtrusive-ajax javascript 并且我已经这样做了但没有效果。任何帮助都非常感谢,谢谢。

【问题讨论】:

  • 使用 Fiddler2 查看来自页面的流量。还要确保你的 .js 被拉下。

标签: jquery ajax asp.net-mvc razor asp.net-ajax


【解决方案1】:

我想添加评论,但我的声誉太低,无法这样做。 您能否检查一下您的 derp.js 文件。函数 DerpCopmplete() 后面有两个大括号会导致 js 文件出错。

【讨论】:

  • 抱歉打错了,我删了。但这并没有导致问题。
  • 您是否包含了“jquery.unobtrusive-ajax.js”文件?
  • 还要检查 webconfig 中的 UnobtrusiveJavaScriptEnabled 是否设置为 true。您可以在codeproject 找到更多信息
  • 是的,js文件和web.config中的key都包含在内。我仍然没有触发事件。但是,表单已成功发布到控制器,而不是事件。
  • 经过一些调整,我发现我没有正确引用 js 文件,它现在可以工作了。谢谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-26
  • 2013-03-12
  • 1970-01-01
  • 1970-01-01
  • 2021-12-21
  • 2023-04-05
  • 1970-01-01
相关资源
最近更新 更多