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

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

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

<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, я всегда получаю предупреждение.Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 10 июля 2011

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

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

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

0 голосов
/ 01 апреля 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();
});
...