Проверка на стороне клиента, обрезка пробелов - драгоценный камень 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 и отправляет его для подсчета букв. Это дает дополнительное преимущество: обрезать пробелы и заменять текст непосредственно в поле.