Плагин JQuery Validate - префикс электронной почты RegEx, суффикс домена и проверка дубликатов - за один раз! - PullRequest
0 голосов
/ 08 марта 2011

Я использую замечательный плагин Validation для JQuery, и пока что все хорошо - у меня даже есть возможность передать введенный адрес электронной почты для проверки базы данных, чтобы убедиться, что дублирующиеся электронные письма не могут бытьпоступил.Однако, чтобы расширить это, я также хочу убедиться, что префикс электронной почты (перед символом @) содержит хотя бы один период (.) - это означает, что пользователи используют свои firstname.lastname emailадрес, а не их firstletterlastname адрес электронной почты (и чтобы они не имели двух учетных записей, использующих каждый формат).

Как указывалось ранее, удаленная проверка самого адреса работает нормально, нопроблема заключается в том, что ответ возвращается только в виде значения JSON истина / ложь - если бы я мог проверить его в своем сценарии на стороне сервера, а затем передать строковое значение, может быть какой-то способ отображения сообщения об ошибке для поля, соответствующегоошибка (и) - например: «ваша электронная почта должна быть firstname.lastname», «суффиксом электронной почты должен быть company.com» и «этот адрес электронной почты уже зарегистрирован».Я читал документы JQuery по проверке, но ничего из того, что я нашел, не позволяет мне передать назад больше, чем просто истина или ложь.

В итоге я решилэто благодаря помощи Эндрю, а также этому сообщению: удаленная проверка jQuery с сообщением об ошибке, сгенерированным сервером Ключ гарантировал, что строки были заключены в двойные кавычки, в то время как истинная передаваемая строка не была,поэтому он будет правильно оценивать и не отображать сообщение об ошибке.Yay для JQuery и потрясающего плагина Validation!

Буду очень признателен за любые идеи / указания относительно того, как реализовать это, и, учитывая, что я просмотрел все более 700 статей о проверке JQuery здесь, в SO, возможно,принесет пользу и другим.Заранее спасибо!

Вот код с тем, что я делаю:

$("#MemberInfo").validate({
    errorPlacement: function(error, element) {
           error.insertAfter(element);
       },
    rules: {
        Memberemail: {
            required: true,
            //minlength: 1,
            email: true,
            remote: {
                url: "checkReg.cfm",
                dataType: "json"
            }
        },

    },
    messages: {
        Memberemail: {
            required: "Please enter a valid @company.com email address",
            minlength: "Please enter a vaild email address",
            remote: jQuery.format("{0} is already registered")  
        }
    }
});

1 Ответ

1 голос
/ 08 марта 2011

Ознакомьтесь с документацией для опции remote:

Ответ оценивается как JSON и должен быть истинным для допустимых элементов, и может быть любым ложным, неопределенным или нулевым для недействительных элементов,используя сообщение по умолчанию; или строка, например.«Это имя уже занято, вместо этого попробуйте peter123» для отображения в качестве сообщения об ошибке.

Так что в коде на стороне сервера, если вы возвращаете строку, она должна отображаться каксообщение об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...