Проверка на стороне сервера в playframework 2.0 во всплывающем окне jquery

Я использую игровую среду 2.0.1. У меня есть форма во всплывающем окне jquery, в которой я должен проверить на стороне сервера и отобразить сообщение проверки БЕЗ ЗАКРЫТИЯ всплывающего окна.

Я пытался использовать маршруты java-скриптов, как указано в примере с задачами zen, но я думаю, что нет примера для вызова ajax со стороны клиента.

Я не смог найти других примеров использования ajax в play framework 2.0.

Любая помощь приветствуется.

Спасибо.


person Amirtharaj Vellingiri    schedule 24.05.2012    source источник


Ответы (2)


На стороне клиента вы можете вызвать собственную функцию 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")))
        }
    )
}
person kheraud    schedule 24.05.2012
comment
Большое спасибо за ваш немедленный ответ. Не могли бы вы объяснить, как вызвать метод java-скрипта. так как я очень новичок в jquery. У меня есть следующий код. @helper.form(action = route.Drabble.submit, 'id -> myForm) { ‹span›@inputText(drabbleForm(title))‹/span› ‹input type=submit class=btn value=PUBLISH/› } и всплывающее окно закрывается даже после того, как требуемое поле не введено. Пожалуйста помоги. - person Amirtharaj Vellingiri; 24.05.2012
comment
Вам следует подумать о том, чтобы разделить свои вопросы в разных темах StackOverflow. javascript, jQuery, Ajax, шаблоны Play и контроллеры Play — это очень разные темы. Если вы недостаточно знаете один из них, задайте очень конкретный вопрос о SO. - person kheraud; 24.05.2012
comment
Спасибо keraud за ваш ответ. - person Amirtharaj Vellingiri; 24.05.2012
comment
Если он отвечает на ваш вопрос, пожалуйста, отметьте ответ как хороший (зеленая галочка) - person kheraud; 24.05.2012

С бутстрапом так легко сделать валидацию, например:

<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 />

Ваше здоровье

person Ducaz035    schedule 29.08.2013