Лекция 3:

Формы и циклы

< Лекция 2 || Лекция 3: 123 || Лекция 4 >

Недостаток этого метода состоит в том, что простая строка " @." пройдет проверку. Должно быть очевидно, что она не является допустимым адресом e-mail. Существует другой метод для проверки адреса e-mail и для проверки множества других вещей. Это делается с помощью так называемых "регулярных выражений". Хотя регулярные выражения здесь рассматриваться не будут, ниже приведен пример проверки адреса e-mail, который остается читателю для анализа в качестве упражнения.

function validateForm(){
  var email = document.forms.tutform.elements.email.value;
  if(!(/^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.
     [a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/.test(email))){
    alert('Пожалуйста, введите допустимый адрес e-mail');
    return false;
  }
  return true;
}

Как можно видеть, использование регулярного выражения приводит к более короткому (и более надежному) коду проверки, но он является и существенно более сложным!

С помощью примеров этой лекции теперь можно создать одну функцию для проверки всей формы:

function tut7(){
  var form_object = document.forms.tutform;
  var radios      = document.forms.tutform.elements.color;
  var email       = document.forms.tutform.elements.email.value;

  if(form_object.elements.firstname.value == "){
    alert('Вы должны ввести свое имя!');
    return false();
  } else if(form_object.elements.lastname.value == "){
    alert('Вы должны ввести свою фамилию!');
    return false();
  } else if(email.indexOf('@')<0){
    alert('В адресе e-mail должен быть символ @');
    return false();
  } else if(email.indexOf('@') != email.lastIndexOf('@')){
    alert('В адресе e-mail не может быть более одного символа @');
    return false();
  } else if(email.indexOf('.')<0){
    alert('В адресе e-mail должна быть как минимум одна точка');
    return false();
  } else if(email.lastIndexOf('.')<email.indexOf('@')){
    alert('В адресе e-mail должна быть как минимум одна точка после символа @');
    return false();
  }

  for(var i=0; i<radios.length; i++){
    if(radios[i].checked) return true();
  }
  alert('Необходимо выбрать цвет!');

  return false;
}
< Лекция 2 || Лекция 3: 123 || Лекция 4 >
Елена Сапегова
Елена Сапегова

После прохождения теоретической части пришло письмо об окончании теоретической части курса, будет ли практическая часть?

Рустам Рахимов
Рустам Рахимов

Пол часа искал в интеренете, как что работает. Такое чувство что автор пишет для людей которые уже знают js, или просто хвастается своими знаниями. Конструкция формы непонятна. И можно было бы в кратце написать, что такое событие которое используют. Сорершенно не понятно как работает форма, и как брать из нее значение. 

function Complete() {

    var x = "Имя: " + document.tutform.firstname.value;

alert(x);

} - Так брать значение из формы tutform, firstname-получаем значение из имени. 

<INPUT TYPE="button" VALUE="Готово" onClick="Complete();"> - Нужно к кнопке прописать событие, при нажатие на кнопку готово, чтобы возвращалось значение с помощью функции. А так ничего не работает, и смысла учить нету, если не знать почему не работает.

 

Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Галина Матрук
Галина Матрук
Молдова, Республика, Кишинев, UTM, 2010