Опубликован: 19.10.2006 | Уровень: для всех | Доступ: платный
Лекция 30:

Проверка данных в форме

< Лекция 29 || Лекция 30: 123 || Лекция 31 >
Аннотация: Предварительная обработка данных форм.

Концепция

Наш последний сценарий JavaScript не из легких, можете в этом не сомневаться.

Снова придется вернуться к формам. В сегодняшнем примере JavaScript применяется для проверки данных, которые ввел пользователь. Нужно будет ввести в форму свое имя и номер телефона из 7 или 9 знаков (ххххххх или ххх-хх-хх). Необходимо также проверить, что первые 3 символа являются цифрами. Это немного сложнее, чем все остальное, но с этим необходимо разобраться. Проверка данных часто является важной задачей для программистов.

Этот пример возвращает нас к свойству length (длина) и показывает в действии два новых метода: indexOf(), charAt(). Сам сценарий будет длиннее, чем обычно.

Сценарий

<HTML>
<HEAD>
<SCRIPT type="text/javascript">
function validfn(fnm)
{
fnlen=fnm.length
if (fnlen == 0)
{alert("Вы должны ввести свое имя")
document.dataentry.fn.focus()}
}
function validphone(phone)
{
len=phone.length
digits="0123456789"
if(len != 7 && len != 9)
{alert("Неверное количество знаков в номере")
document.dataentry.phone.focus()}

for(i=0; i<3; i++)
{if (digits.indexOf(phone.charAt(i))<0)
{alert("Это должны быть цифры")
document.dataentry.phone.focus()
break}
}

}
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="dataentry">
<h2>Подтверждение данных</h2>

Введите свое имя:<br>
  <INPUT TYPE="text" NAME="fn" 
    onBlur="validfn(fn.value)">

<SCRIPT LANGUAGE="JavaScript">
  document.dataentry.fn.focus()
</SCRIPT>

Введите номер телефона (ххх-хх-хх):<br>
    <INPUT TYPE="text" NAME="phone" SIZE=10 >

<INPUT TYPE="button"  VALUE="Отправить" 
     onClick="validphone(phone.value)">

</BODY>
</HTML>

Результат работы сценария

На странице выводятся два поля ввода с просьбой ввести свое имя и номер телефона. В случае недопустимого ввода выдается сообщение об ошибке.

< Лекция 29 || Лекция 30: 123 || Лекция 31 >
Елена Сапегова
Елена Сапегова

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

Эдуард Семынин
Эдуард Семынин

Здравствуйте.

Перестали быть видны лекции и тесты практикума по программированию на JavaScript. Уже второй день из моего аккаунта виден лишь план занятий. В чем может быть проблема?

 

Степан Дегтярик
Степан Дегтярик
Беларусь, Минск
Никита Базыленко
Никита Базыленко
Беларусь, МИНСК