файл маршрутов содержит:

конф/маршруты

[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