Как создать мои собственные методы проверки для валидатора формы jQuery - PullRequest
0 голосов
/ 08 декабря 2011

Я использую скрипт проверки формы jQuery здесь: http://jzaefferer.github.com/jquery-validation/jquery.validate.js

Большинство необходимых мне методов (поле, макс. Длина и т. Д.) Уже включены в этот сценарий, но есть два особенно важных, которые, я думаю, мне нужно будет написать самому.

  1. Одно из полей предназначено для отправки изображения. Во-первых, мне нужно проверить, что передаваемое изображение на самом деле связывается напрямую, чтобы сделать изображение.

  2. Далее мне нужно подтвердить, что отправляемое изображение НЕ является GIF-изображением.

  3. И, наконец, (это может быть сложно) Мне нужно, чтобы он зашел в мою базу данных изображений MySQL и подтвердил, что это изображение не было отправлено ранее (под тем же URL)

Пожалуйста, помогите мне, если вы можете указать мне, как сделать хотя бы один из них! Спасибо!

РЕДАКТИРОВАТЬ, так что это полезно для других, кто столкнулся с этой проблемой:

Первая проблема была решена путем добавления метода проверки его изображения: использовалась справка по коду от Дейва и предложение addMethod от Innerpeacer. Также посмотрите на ответ bshack из этого вопроса. Кроме того, регулярное выражение для изображений:

^(http\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(?:\/\S*)?(?:[a-zA-Z0-9_])+\.(?:jpg|jpeg|gif|png))$

Теперь перейдем ко второй части.

Ответы [ 2 ]

1 голос
/ 08 декабря 2011

Я хотел написать это в обычном комментарии, но в нем много кода:

digits : function(value, element){ ... }, // comma here
image : function(value, element){
    return this.optional(element) || YOUR_REGULAR_EXP.test(value);
}, // comma here

Просто нужно найти регулярное выражение, соответствующее вашим критериям, может быть что-то вроде:

@"(.*?)\.(jpg|jpeg|png|gif)$
1 голос
/ 08 декабря 2011

Используйте addMethod. http://docs.jquery.com/Plugins/Validation/Validator/addMethod

Однако, если вам действительно нужно убедиться, что файл не является GIF и не был загружен в вашу базу данных, я думаю, вам придется делать это на стороне сервера?

...