Глава 27. Язык JavaScript/JScript______________________________651

Изменение данных в полях формы

Уже несколько раз упоминалось о том, что язык JavaScript удобен для проверки и изменения данных в HTML-формах. Рассмотрим пример динамического обновления значения в текстовом поле, при котором пользователь выбирает нужный вариант посредством нажатия одной из нескольких кнопок.

Для реализации данной задачи необходимы два программных элемента;во-первых, приведенный ниже простой фрагмент кода на JavaScript обновляет значение свойства объекта и приписывает ему заданное значение.

function change(input, newValue){ input.value= newValue;

}

Во-вторых, для каждой кнопки нужно иметь метод ondick, вызывающий функцию change (). Вот пример описания кнопки:

<input type=button value=="Mac"

onClick="change(this.form.display, 'Macintosh'),">

После щелчка мышью на некоторой кнопке вызывается метод ondick, который в свою очередь указывает на пользовательскую функцию. Объект this. form. display связан с текстовым полем display;при этом ключевое слово this ссылается на активный документ, form ссылается на форму в активном документе, a display — это поле формы, имеющее имя display.

Кроме этого, конечно же, необходимо включить в форму тэг ввода <INPUT>с именем display!

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

Зачастую при создании некоторой формы, получающей данные от пользователя, нужно проверять правильность и полноту введенных данных перед выполнением соответствующих действий. При отсутствии JavaScript нужно пересылать данные при помощи тэга <POST>и использовать CGI-скрипт на сервере для проверки правильности заполнения всех полей. Лучше для этих целей написать функции на JavaScript, которые анализируют данные в форме на стороне клиента;передаваться будут только правильные данные.

Предположим, к примеру, что пользователь должен заполнить два поля в некоторой форме:полеZIP-кодаи поле зонального кода. Пусть также имеется несколько необязательных полей. Во-первых, потребуется функция, возвращающая значение TRUE, если поле заполнено, и значение FALSE, если поле — пустое:

function isFilled(input){

return (input.value.length !=0);