ajax在play框架中提交表单

时间:2012-08-12 11:32:02

标签: jquery playframework-2.0

我首先尝试使用jquery表单验证插件对输入进行验证后在ajax中使用jsRoutes提交表单。问题在于,当我添加"数据:form"对于ajax调用的参数,永远不会调用响应处理程序。一些代码可以进一步解释这个问题:

jsRoutes.controllers.Application.authenticate().ajax({
    data : {
        form : this //this messes things up!
    },
    success : function(data) {
        window.location = "/"; //never called with the above data stuff
    },
    error : function(err) {
        alert(err); //never called with the above data stuff
    }
});

我能够读取控制器中的表单字段。一种解决方案当然是从表单中手动将每个字段提取到数据部分(如下所示),但这不是必需的。还有其他解决方案吗?

data : {
    username : <username from form>
    password : <password from form>
},

1 个答案:

答案 0 :(得分:3)

<form>标记设置唯一的ID属性,即:<form id="my_form" ...>,然后使用ID作为jQuery选择器对其进行序列化:

   jsRoutes.controllers.Application.authenticate().ajax({
    data : $("#my_form").serialize(),
    success : function(data) {
        // ...
    },
    error : function(err) {
        // ...
    }
});

使用浏览器内部检查工具(例如FireBug)检查是否发送了您想要的内容以及响应是否为formatted