Проверка формы jQuery, разрешены только адреса электронной почты .EDU - PullRequest
4 голосов
/ 31 декабря 2011

Я использую функцию проверки jquery и плагин, расположенный здесь.http://docs.jquery.com/Plugins/Validation

Я отправляюсь через файл js и обнаружил блок проверки электронной почты, который проверяет, является ли это действительным адресом электронной почты. Дело в том, что я хочу разрешить только электронные письма .edu.Понятия не имею, с чего начать.

Ответы [ 3 ]

7 голосов
/ 31 декабря 2011

Вы можете расширить его и добавить свое собственное правило.

jQuery.validator.addMethod("edu", function(value, element) {
  // Make it work optionally OR
  //  Check the last 4 characters and ensure they match .edu
  return (this.optional(element) || value.slice(-4) == ".edu"); 
}, "You must use a .edu email address");

$("#myform").validate({
  rules: {
    field: {
      required: true,
      email: true,
      edu: true
    }
  }
});

Вот jsfiddle , показывающий, как все это работает вместе и как каскад ошибок.Просто нажмите кнопку.

6 голосов
/ 11 января 2012

Вам не нужно пользовательское расширение.Вы можете использовать accept() метод: http://docs.jquery.com/Plugins/Validation/Methods/accept#extension

// input field
<input type="text" id="eduEmail2" name="eduEmail2" value="abc@123.edu"/>

// validation rule
eduEmail2: {
    required: true,
    email: true,
    accept: 'edu'
}

Полный пример: http://jsfiddle.net/M5TmU/2/ (на основе jsfiddle Бромбомба)

ОБНОВЛЕНИЕ

После комментария xecute - вы можете использовать собственный шаблон регулярных выражений.В additional-methods.js у вас есть метод "pattern" (последний в файле):

eduEmail3: {
    required: true,
    email: true,
    pattern: /(\.edu\.\w\w)$/
}

Полный пример: http://jsfiddle.net/M5TmU/3/

Конечно, он не идеален, но все же -вам не нужно писать собственный метод:)

ДОПОЛНИТЕЛЬНОЕ РЕДАКТИРОВАНИЕ : доменные имена стран состоят из двух букв, поэтому \w\w\w? слишком много - \w\w должно быть.Я оставил \w\w\w? в скрипке

0 голосов
/ 11 января 2012

Возможно, вы все еще будете получать спам с адреса электронной почты не .edu.

Я бы предложил проверить серверную часть почтового домена.

Так что электронное письмо должно быть .edu, иначе оно не будет отправлено.

В противном случае, если я отключу свой JavaScript в своем браузере, я могу отправить любой адрес электронной почты, и он отправит.

...