Проверка электронной почты с определенных доменов с помощью подключаемого модуля RSV jquery

Я пытаюсь использовать подключаемый модуль Ben Keen RSV Jquery для проверки адреса электронной почты, отправленного через регистрационную форму: пользователям разрешено отправлять только адрес электронной почты, принадлежащий определенному домену. Я думал, что использование правила reg_exp плагина может быть решением, но я не могу заставить его работать. Я новичок в jquery, поэтому, вероятно, я совершаю очень глупую ошибку: может ли кто-нибудь указать мне правильное направление?

Вот код, который я пытаюсь использовать, адаптированный из одной из демонстраций Keen:

<script type="text/javascript">

  // a custom onComplete handler to prevent form submits for the demo
  function myOnComplete()
  {
    alert("The form validates! (normally, it would submit the form here).");
    return false;
  }

    var rules = [];

// standard form fields

rules.push("reg_exp,reg_exp_field1,/@mydomain\.tld$/gi,Please enter your valid e-mail (e.g. \"@mydomain\.tld\")");


$(document).ready(function() {
    $("#demo_form3").RSV({
    onCompleteHandler: myOnComplete,
    rules: rules
    });
}); 
</script>

Используя приведенный выше код, когда я отправляю действительный адрес электронной почты, то есть адрес, заканчивающийся на @mydomain.tld, я всегда получаю предупреждение. Что я делаю не так?


person kikaweb    schedule 31.03.2011    source источник


Ответы (2)


Я написал RSV для многих строк кода. Это очень мощно. Однако вы использовали его неправильно.

  1. вам следует определить настраиваемую функцию вместо метода проверки формата электронной почты по умолчанию.
  2. вы должны поместить эту «настраиваемую функцию», упомянутую выше, в массив проверки, но не помещать ее в метод «myOnComplete», этот метод вызывается только тогда, когда все проверки пройдены.
  3. в RSV настроенная функция должна возвращать только «истину» (при передаче) или «массив» (при ошибке). но в приведенном выше примере вы реализовали как «возврат false».

Как бы то ни было, вы решили свою проблему другим способом. :-) это хорошо.

person Siwei    schedule 10.07.2011
comment
Привет Siwei, спасибо, что указали на мою ошибку. Когда дело доходит до jquery/javascript, я полный новичок и учусь методом проб и ошибок. Спасибо за ответ на мой вопрос :-) - person kikaweb; 12.08.2011

Неважно, после дальнейших исследований я нашел более простое решение: следуя советам в этой ветке форума Я использовал jqueryValidate вместо подключаемого модуля rsv и добавил собственный метод проверки. Я публикую здесь свое решение, возможно, оно может быть полезно для некоторых других новичков jquery, таких как я!

  $(document).ready(function(){

$.validator.addMethod("gmail", function(value, element) {
    return this.optional(element) || /^[\w-\.]+@(gmail\.com|yahoo\.com)+$/i.test(value);
}, "Email address must contain gmail or yahoo addresses."); 

    $("#register_member_form").validate();
});
person kikaweb    schedule 01.04.2011