Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Jquery validation добавить метод валидации инпуту- заполнение из базы (https://javascript.ru/forum/jquery/60912-jquery-validation-dobavit-metod-validacii-inputu-zapolnenie-iz-bazy.html)

t.soyuzova 27.01.2016 09:12

Jquery validation добавить метод валидации инпуту- заполнение из базы
 
Добрый день, дорогие форумчане!
У меня стоит такая задача- сделать собственное правило валидации на поле, которое заполняется с помощью autocomplete значениями из базы. Мне нужно сделать подсказку пользователю, если он пишет слово, не существующее в базе, то оно не проходит валидацию. Мой вариант такой, но он не работает (arr - это массив допустимых значений):
jQuery.validator.addMethod("select_method", function(value, element) {
var arr = [1, "2", "3"];
 return this.optional(element) || $.inArray(value, arr) != -1; 
},
);


Прошу помощи от профессионалов)) Сама только начинаю изучать JS, не судите строго.

laimas 27.01.2016 11:19

Цитата:

Сообщение от t.soyuzova
Мне нужно сделать подсказку пользователю, если он пишет слово, не существующее в базе, то оно не проходит валидацию.

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

t.soyuzova 27.01.2016 11:23

так вот я и сравниваю значения из базы - они в массиве arr, с тем, которое ввел пользователь value.

Dilettante_Pro 27.01.2016 12:57

t.soyuzova,
Цитата:

Сообщение от t.soyuzova
так вот я и сравниваю значения из базы - они в массиве arr, с тем, которое ввел пользователь value.

В таких случаях не нужно делать валидацию. Нужно сделать по списку, полученному из базы данных, SELECT, и пользователь не будет вводить свои слова, а выберет из SELECT'а только допустимые

laimas 27.01.2016 14:52

Цитата:

Сообщение от t.soyuzova
так вот я и сравниваю значения из базы - они в массиве arr, с тем, которое ввел пользователь value.

Зачем? Autocomplete или "живой поиск", это нахождение в базе вариантов совпадающих с набором производящим клиентом. Сервер вернет только то, что есть. Валидация к этому отношения не имеет, и сравнивать ничего не надо - запрос к бузе, здесь будет сравнение.


Часовой пояс GMT +3, время: 23:12.