|
После прохождения теоретической части пришло письмо об окончании теоретической части курса, будет ли практическая часть? |
Опубликован: 19.10.2006 | Уровень: для всех | Доступ: платный
Лекция 3:
Формы и циклы
Недостаток этого метода состоит в том, что простая строка " @." пройдет проверку. Должно быть очевидно, что она не является допустимым адресом 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;
}