发布coffescript / ajax的表格

时间:2015-05-04 16:55:03

标签: ajax forms playframework coffeescript

我尝试使用coffeescript / ajax提交一个简单的表单。但我做错了什么并且无法弄清楚是什么。 我从一个工作表单开始创建问题(没有ajax)然后跟着Playframwork doc on javascript routing

首先,我在我的应用程序控制器中创建了路由器资源:

def javascriptRoutes = Action { implicit request =>
  Ok(
    Routes.javascriptRouter("jsRoutes")(
      routes.javascript.Questions.create
    )
  ).as("text/javascript")
}

在路线中添加:

GET         /javascriptRoutes          controllers.Application.javascriptRoutes

已添加到我的模板中:

<script type="text/javascript" src='@routes.Application.javascriptRoutes()'></script>

然后包括coffescript:

$ ->
  $('#save').on "click", (e) ->
    jsRoutes.controllers.Questions.create.ajax
      data: $('#questionForm').serialize()
      success: (data) ->
        alert("success")
      error: (err) ->
        alert("error")

#save指向链接,onclick事件适用于简单警报。 $(&#39;#questionForm&#39;)。serialize()似乎也输出了正确的数据。

该脚本什么都不做,我不知道如何使用chrome javascript调试器正确调试它,因为我不知道在哪里看。至少intellij 告诉我,从未调用过Questions.create。

编辑:感谢Infinity,我注意到chrome javascript调试器抛出:

Uncaught TypeError: jsRoutes.controllers.Questions.create.ajax is not a function(anonymous function) @ save.coffee:3m.event.dispatch @ jquery.js:4641m.event.add.r.handle @ jquery.js:4309

1 个答案:

答案 0 :(得分:0)

感谢Infinity和新的控制台错误输入,我注意到了

jsRoutes.controllers.Questions.create.ajax

必须是

jsRoutes.controllers.Questions.create().ajax