файл маршрутов содержит:
конф/маршруты
[sourcecode language=”scala” wraplines=”false” crush=”false”]
# Javascript-маршрутизация
GET /javascriptRoutes controllers.Application.javascriptRoutes
[/sourcecode]
Шаг 2. Создайте маршрут для проверки идентификатора электронной почты
файл маршрутов содержит:
конф/маршруты
[sourcecode language=”scala” wraplines=”false” crush=”false”]
GET /isEmailExist/:email controllers.Application.isEmailExist(email: String)
[/sourcecode]
Шаг 3. Создайте действие для проверки существования идентификатора электронной почты
Scala-версия, доступ к телу:
приложение/контроллеры/Application.scala
[язык исходного кода = "scala" wraplines = "false" свернуть = "false"]‹/pre›
def isEmailExist(email: String) = Action { неявный запрос =›
// замените этот код своей бизнес-логикой (или моделью)
, чтобы проверить, существует ли уже данный адрес электронной почты или нет
User.findUserByEmail(email).isEmpty match {
case true => Ok («false»)
case false =› Ok («true»)
}
}
‹pre›[/sourcecode]
Шаг 4. Создайте действие, переводящее общие маршруты в JS
Scala-версия, доступ к телу:
приложение/контроллеры/Application.scala
[язык исходного кода = "scala" wraplines = "false" свернуть = "false"]
def javascriptRoutes = Action { неявный запрос =>
import route.javascript._
Ok(
> Routes.javascriptRouter("jsRoutes") (routes.javascript.Application.isEmailExist)).as("text/javascript")
}
[/sourcecode]
Шаг 5. Включите javascriptRoutes в основной шаблон
приложение/views.main.scala.html
[язык исходного кода = "scala" wraplines = "false" свернуть = "false"]
‹тип скрипта = "текст/javascript" src="@routes.Application.javascriptRoutes"›‹/script›
[/исходный код]
Шаг 6. Создайте форму регистрации
приложение/представления/signUpForm.scala.html
[язык исходного кода = "scala" wraplines = "false" свернуть = "false"]
@(signupForm: Form[UserSignUpForm],message:String)
@import helper._
@import helper.twitterBootstrap._
@title = {
Форма регистрации в Play2.0
}
@основное название) {
‹div id="alert-box"›@*Обновить этот Div Мой вызов Ajax*@‹/div›
@helper.form(action = route.Application.createUser) {
‹набор полей›
‹легенда›@сообщение‹/легенда›
@inputText(
signupForm("электронная почта"), '_label -> "Электронная почта", 'onBlur-›"isEmailExist()", @*чтобы сделать вызов ajax при размытии *@
'_help -› «Введите действующий адрес электронной почты».
)
@inputPassword(
signupForm(“password.main”),
'_label -› «Пароль»,
'_help -› «Пароль должен быть не менее 6 символов. «
> )
@inputPassword(
signupForm(“password.confirm”),
'_label -› "Повторите пароль",
'_help -› "Пожалуйста, повторите пароль еще раз.",
'_error -> signupForm.error("пароль")
)
‹/набор полей›
‹div›
‹input type="submit" value="Sign Up" ›
‹/div›
}
}
[/исходный код]
Шаг 7: код javascript для вызова ajax
приложение/представления/signUpForm.scala.html
[язык исходного кода = "scala" wraplines = "false" свернуть = "false"]
‹тип скрипта = "текст/javascript"›
var successFn = function(data) {
if( data == "true"){
$('#alert-box').html('');
$("#alert-box").append('‹div›' + '‹a data-dismiss="alert"›×‹/a› ' +
'‹strong›Ошибка!‹/strong›Идентификатор электронной почты уже существует ! '+ '‹/div›');
> }
else{
$('#alert-box').html('');
$("#alert-box").append('‹div›' + '‹a data-dismiss="alert"›×‹/a› ' +
'‹strong›Успех!‹/strong›Действительный идентификатор электронной почты ! '+ '‹/div›');
}
console.debug("Успех вызова Ajax");
console.debug(data);
};
var errorFn = function(err) {
console.debug("Ошибка вызова ajax");
console.debug(err);
}
ajax1 = {
успех: successFn,
ошибка: errorFn
}
function isEmailExist() {
var idToGet = $("#email").val();
jsRoutes.controllers.Application.isEmailExist(idToGet)
.ajax(ajax1);
}
‹/script›
[/исходный код]
Итак, из вышеупомянутых 7 шагов мы узнали, как сделать вызов Ajax с помощью jsRoutes в Play Templating
Предположим, мы выполняем приведенный выше код с помощью команды play run .
Мы бы получите форму, как вы видите ниже:
Теперь давайте попробуем указать существующий идентификатор электронной почты. Как только мы поместим существующий адрес электронной почты
и нажмем вкладку (на размытии), мы увидим следующую форму с предупреждением о проверке.
Теперь, если мы поместим новый идентификатор электронной почты и нажмем вкладку, мы увидим форму со следующим предупреждением.
Весь код можно найти здесь: https://github.com/knoldus/FormDemoInPlay