Проверка на стороне клиента, обрезка пробелов - драгоценный камень client_side_validations и Ruby on Rails 3

Я пытался проверить, что имя пользователя имеет длину> 2 на стороне клиента, используя гем client_side_validations.

Серверная сторона в моей модели у меня была before_validation Фильтр для удаления пробелов, но на стороне клиента ничто не будет обрезать пробелы.

Как я могу обрезать пробел, чтобы правильно подсчитать количество символов в поле?

"Люк Скайуокер" должен считать "Люк Скайуокер".

1 ответ

Решение

Я сделал это следующим образом:

в rails.validations.js, который вставляет client_side_validations, найдите следующую часть:

var validateElement = function(element, validators) {
    element.trigger('element:validate:before');

и добавьте следующий код после:

element.val( element.val().trim() );

Это удаляет значение элемента DOM и отправляет его для подсчета букв. Это дает дополнительное преимущество: обрезать пробелы и заменять текст непосредственно в поле.

Другие вопросы по тегам