Как дать пользователю живую обратную связь для формы Rails - PullRequest
1 голос
/ 19 октября 2010

Мне нужно создать форму Rails, которая будет отвечать пользователю в реальном времени, когда они вводят поля.

В частности, пользователю нужно будет ввести четыре десятичных поля, представляющих данные некоторых тестов, которые проводит наша компания. Проблема в том, что тестеры часто вводят неверно (пропускают цифру или нажимают «4» вместо «1» и т. Д.).

Это легко проверить, так как в реальной жизни входные данные не должны изменяться более чем на 5. Я просто хотел бы отправить живое сообщение обратно, когда они вводят что-то вроде: «Пожалуйста, проверьте, нет ли ошибки в Ваш ввод ", если поля меняются в зависимости от условий.

Я просмотрел много учебных пособий по валидации, в том числе и в Advanced Rails Recipes, но а) мне не нужен серверный запрос для этого, и б) технически это не валидация, поскольку я хочу только предупредить пользователя ввода, а не помешать им сделать это.

Ответы [ 2 ]

2 голосов
/ 19 октября 2010

Вы можете сделать это с помощью некоторого JavaScript, прикрепив onchange к полям ввода, о которых вы хотите предупредить пользователей при заполнении формы. Таким образом, когда они переходят к следующему полю в форме, ваш обработчик событий вызывается, проверяет значение поля формы, для которого он только что ввел информацию, и решает, предупреждать ли пользователя предупреждающее сообщение или нет. Тебе вообще не придется заходить на сервер.

Пример использования jQuery:

$('#your_form_field').change(function () {
  var isValid = false; // Validate the input's value based on some criteria
  if (!isValid) {
    alert("Please check your work.");
  }
});
0 голосов
/ 19 октября 2010

AJAX с RJS RailsCast может помочь.Вы можете написать RJS, который возвращается один раз с сервера и затем выполняется N раз для событий на клиенте.

...