В настоящее время я использую этот плагин для выполнения проверки в реальном времени GeekTantra
Это хорошо работает и проверяет все мои поля полей.
Я пытаюсь проверить, совпадает ли имя пользователя, введенное в поле, в массиве, и если оно возвращает сообщение "имя пользователя уже используется". Данные собираются с использованием PHP, преобразуются в нижний регистр, а затем записываются в массив jquery.
Проверка этого массива с помощью console.log(username)
показывает:
["bob", "brian", "charlie", "mike", "dave", "simon", "lincoln", "reg", "bill"]
Правило, которое я использую:
jQuery("#name").validate({
expression: "if ($.inArray(VAL.toLowerCase(), username)!==-1) return true; else return false;",
message: "username is already in use"
});
Но я никогда не ожидал ожидаемых результатов. Глядя на массив, я вижу, что reg используется, но если я вхожу в REG или reg и т.д. в поле формы, он не соответствует массиву. Если я войду в Фил, тогда мне расскажут, что это используется, когда нет.
Что я делаю не так?
благодаря
ОБНОВИТЬ
Это работает.. почему?
expression: "if ($.inArray(VAL.toLowerCase(), username)<=-1) return true; else return false;",
я думаю, что это синтаксическая ошибка
попробуйте изменить =>
from--
if ($.inArray(VAL.toLowerCase(), имя пользователя)! == -1)
to---
if ($.inArray(VAL.toLowerCase(), имя пользователя)! = -1)
Вероятно, username
не входит в объем выражения. Вы можете сделать document.username = username
и использовать document.username в выражении.
!=-1
не помогло. Но переход к этому имеет:expression: "if ($.inArray(VAL.toLowerCase(), username)<=-1) return true; else return false;",
почему?