【发布时间】:2013-08-29 15:30:06
【问题描述】:
我正在使用播放框架 2.0.1。我在 jquery 弹出窗口中有一个表单,我必须在服务器端进行验证并在不关闭弹出窗口的情况下显示验证消息。
我尝试使用 zen 任务示例中给出的 java 脚本路由,但我认为没有示例可以从客户端进行 ajax 调用。
我找不到在 play framework 2.0 中使用 ajax 的任何其他示例。
感谢任何帮助。
谢谢。
【问题讨论】:
我正在使用播放框架 2.0.1。我在 jquery 弹出窗口中有一个表单,我必须在服务器端进行验证并在不关闭弹出窗口的情况下显示验证消息。
我尝试使用 zen 任务示例中给出的 java 脚本路由,但我认为没有示例可以从客户端进行 ajax 调用。
我找不到在 play framework 2.0 中使用 ajax 的任何其他示例。
感谢任何帮助。
谢谢。
【问题讨论】:
在客户端,您可以调用自己的 javascript 函数,该函数将收集您的所有表单输入:
$("#myForm").submit(function(evt) {
evt.preventDefault();
$.ajax({
type: "POST",
url: "@routes.MyController.myMethod()",
data: { username: $("#myForm #username").val(), age: $("#myForm #age").val() },
dataType: "json",
success: function(data, textStatus, jqXHR) {
console.log("Success of call");
//Do what you want here
//For example close the jquery opened panel
},
error: function(jqXHR, textStatus, errorThrown) {
console.log("Failure of call");
}
}
return false;
});
在服务器端,您会将传入请求视为任何其他请求(这是一个 scala 示例,适用于 java):
def connectWithFB = Action { implicit request =>
Form(tuple("username" -> nonEmptyText, "age" -> nonEmptyText)).bindFromRequest.fold(
errors => {
BadRequest(toJson(Map("status" -> "0", "error" -> "Missing fields or wrong field")))
},
success => {
Ok(toJson(Map("status" -> "1")))
}
)
}
【讨论】:
使用 bootstrap 可以很容易地进行验证, 例如:
<div class="form-group" style="position:relative;left:20px;">
<label class="sr-only" for="exampleInputEmail2"><strong> Genre</strong>
</label>
<input type="text" name="genre" required />
</div>
你所要做的就是说它是这样要求的
<input type="text" name="genre" required />
干杯
【讨论】: