Глава 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);