Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основи мови JavaScript.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.04 Mб
Скачать

3.3.7. Однострочное поле text

Часто у формах, розміщених на сторінках серверів Web, зустрічаються однострочные поля, призначені для запровадження і редагування тексту. Для того щоб вбудувати таке поле у форму, необхідно використовувати оператор <INPUT> із параметром TYPE, рівним значенню "text":

<INPUT TYPE="text"

NAME="Ім'я_поля_ text"

VALUE="Значення"

SIZE=Paзмep_поля оnВlur="Оброблювач_події" оnChаnge="Оброблювач_події"

оnFocus="Оброблювач події"

onSelect="Оброблювач_події">

Додатково можна зазначити параметри NAME, VALUE і SIZE, а також чотири оброблювачі подій, утворюваних текстовим полемо.

Параметр NAME дозволяє задати ім'я поля, необхідне для обертання до властивостей об'єкта text, що відповідає цьому полю.

За допомогою параметра VALUE можна записати в поле довільний текстовий рядок. Цей рядок буде відображатися відразу після завантаження документа HTML у вікно браузера.

Параметр SIZE визначає розмір (ширину) текстового поля в символах. Це розмір видимої частини поля. Він не обмежує довжину рядка, що можна ввести в даному полі.

Властивості об'єкта text

Сценаріям JavaScript доступні три властивості поля редагування як об'єкта класу text:

Властивість Опис

defaultValue Відбиває стан параметра VALUE

name Значення параметра NAME

value Поточний уміст поля редагування

Відразу після відображення нуля редагування властивості defaultValue і value бережуть однакові рядки. Коли користувач редагує текст, усі зміни відбиваються у властивості value.

Змінюючи уміст властивості value, сценарій JavnSnipt може змінити вміст поля редагування.

Методи об'єкта text

Для об'єкта text визначені методи focus, blur і select, що не мають параметрів. За допомогою методу focus сценарій JavaScript може передати фокус полю редагування, а за допомогою методу blur - відібрати фокус у цього поля. Виклик методу select призводить до виділення вмісту поля редагування.

Оброблювачі подій об'єкта text

Оброблювачі подій визиваються в таких випадках:№

Оброблювач Коли визивається

onFocus Поле редагування одержує фокус запровадження

onBlur Поле редагування утрачає фокус запровадження

onChange Змінюється вміст поля редагування

onSelect Виділяється вміст поля редагування

3.3.8. Перевірка анкети

Методика роботи з текстовими полями в сценаріях JavaScript буде розглянута на прикладі документа HTML із формою для запровадження анкети.

Приведений сценарій виконує нескладне опрацювання інформації, що вводиться в текстових полях цієї форми. Зокрема, сценарій перетворює символи прізвища в прописні. Якщо зазначити вік, менший 18 років, сценарій зробить його рівним нулю.

Якщо після заповнення анкети натиснути кнопку Complete, на екрані з'явиться діалогова панель, що відображає вміст окремих полів форми.

Кнопка Reset установлює поля у вихідний стан. Вихідний текст документа HTML з описаною вище формою і сценарієм JavaScript ви знайдете в листинге 3.4.

Листинг 3.4. Файл chapter3/text/text. html

<HTML>

<HEAD>

<Т1ТLЕ>Робота з текстовими полями</Т1ТLЕ>

<SCRIPT LANGUAGE="JavaScript">

<!--

function Complete()

{

var szElement="";

szЕ1еmеnt="Прізвище: " + Sel.family.value + "\nИмя: " + Sel.Name.value + "\nТелефон: " + Sel.PhoneNumber.value + "\nВозраст: " + Sel.Age.value;

alert(szElement);

}

function CheckAge(age)

{

if(age < 18)

else

return age;

}

//-->

</SCRIPT>

</НЕАD>

<body BGCOLOR=white>

<H1>3аполните анкету</Н1>

<FORM NAME="Sel">

<TABLE>

<ТR><ТD><У>Прізвище:</У></ТD><ТD><INРUТ TYPE="text"

NAME="family"

onChange="this.value=this.value.toUpperCase()"

SIZE="20"></TD></TR>

<ТR><ТD><У>Ім'я:</У></ТD><ТD><INРUТ TYPE="text"

NAME="Name" SIZE="20"></TD></TR>

<ТR><ТD><У>Телефон:</У></ТD><ТD><INРUТ TYPE="text"

NAME="PhoneNumber" SIZE="10"></TD></TR>

<TR><TD><B>Boзpacт:</B></TD><TD><INPUT TYPE="text"

NAME="Age" VALUE="18" SIZE="4"

onChange="this.value=CheckAge(this.value)"

onFocus="this.select()"></TD></TR>

<P>

<TABLE>

<TR><TD><INPUT TYPE="button" VALUE="Complete"

onClick="Complete();"></TD>

<TD><INPUT TYPE="reset" VALUE="Reset"></TD></TR>

</TABLE>

</FORM>

</BODY>

</HTML>

Для перетворення символів прізвища в прописні для поля family визначений оброблювач події onChange:

onChange="this. value=this. value. toUpperCase()"

Після внесення змін у вміст поля цей оброблювач викликає метод toUpperCase, визначений у класі рядків. Перетворене значення записується знову у властивість this. value.

Поле Age має два оброблювачі для подій: onChange і onFocus:

onChange="this. value=CheckAge(this. value)"

onFocus="this. select()"

Перший із цих оброблювачів викликає функцію перевірки віку CheckAge, передаючи їй значення з поля Age. Повернуте цією функцією значення знову записується в те ж саме поле.

Функція CheckAge виглядає дуже просто:

function CheckAge(age)

{

if(age < 18)

return "0";

else

return age;

}

Якщо їй передається рядок, що містить число, менше 18, вона повертає нульове значення. У тому випадку, коли число більше 18 або коли в цьому полі знаходиться нечисловое значення, функція CheckAge повертає переданий їй рядок без змін.

Оброблювач події onFocus викликає метод select, що виділяє вміст поля редагування. Дія цього оброблювача можна побачити, нажимая клавішу табуляции доти, поки фокус запровадження не буде переданий полю Age.

Кнопку Complete користувач натискає після заповнення анкети. Для неї визначений оброблювач події onClick:

<INPUT TYPE="button" VALUE="Complete"

onClick="Complete();">

Цей оброблювач викликає функцію з ім'ям Complete, у задачу якої входить відображення вмісту поляж форми. Вихідний текст функції Complete приведений нижче:

function Complete()

{

var szElement="";

szElement="Фaмилия: " + Sel.family.value + "\nИмя: " + Sel.Name.value + "\nТелефон: " + Sel.PhoneNumber.value + "\nВозраст: " + Sel.Age.value;

alert(szElement);

}

Варто звернути увагу на те, як адресуються властивості полів форми вказівкою імені форми, імен полів і імені властивості value.