Обработка событий, генерируемых элементами управления формы

Обработка событий, генерируемых элементами управления формы

В нашем сценарии мы будем обрабатывать события, связанные с нажатием на кнопки в форме и с изменением текста в полях ввода. Для этого нужно, во-первых, получить ссылку на соответствующий элемент управления в форме, зная его имя, которое задается атрибутом name в HTML-файле, например:

<input type="button" value="<<" name="btnFirst">

Для доступа к элементу управления используется объект Document, который соответствует загруженному в браузер HTML-документу. Ссылка на объект Document Хранится в свойстве Document объекта Application:

//Получаем ссылку на объект Document

doc = ie.Document;

Обработчики событий для элементов управления формы указываются тогда следующим образом:

doc.all.ControlName.EventName=FunctionName;

Здесь ControlName — имя элемента управления, EventName — имя обрабатываемого события, FunctionName — имя функции-обработчика, которая будет вызываться при наступлении события EventName. Событие, возникающее при нажатии на кнопку в форме, называется onclick, а событие, происходящее при изменении текста в поле ввода, — onchange:

//Указываем функции-обработчики нажатий на кнопки формы

doc.all.btnSave.onclick=btnSave_OnClick;

doc.all.btnCancel.onclick=btnCancel_OnClick;

doc.all.btnFirst.onclick=btnFirst_OnClick;

doc.all.btnPrevious.onclick=btnPrevious_OnClick;

doc.all.btnNew.onclick=btnNew_OnClick;

doc.all.btnDelete.onclick=btnDelete_OnClick;

doc.all.btnNext.onclick=btnNext_OnClick;

doc.all.btnFinal.onclick=btnFinal_OnClick;

//Указываем функции-обработчики изменения текста в полях ввода

doc.all.txtLastName.onchange = txtBoxOnChange;

doc.all.txtName.onchange = txtBoxOnChange;

doc.all.txtPhone.onchange = txtBoxOnChange;

doc.all.txtStreet.onchange = txtBoxOnChange;

doc.all.txtHouse.onchange = txtBoxOnChange;

doc.all.txtApp.onchange = txtBoxOnChange;

doc.all.txtNote.onchange = txtBoxOnChange;

Сами функции-обработчики нажатий на различные кнопки и изменения текста в полях ввода приведены с подробными комментариями в листинге 7.12.

Листинг 7.12. Функции-обработчики нажатия кнопок и изменения поло ввода

//Функция-обработчик нажатия на кнопку "Сохранить"

function btnSave_OnClick() {

 //Сохраняем данные из формы в XML-файле

 objListPersons.SaveData();

}

//Функция-обработчик нажатия на кнопку "Отменить"

function btnCancel_OnClick() {

 //Заново загружаем данные из текущего элемента массива

 //в форму

 objListPersons.LoadDialog();

 //Выводим сообщение в заголовке окна

 doc.title = "Данные восстановлены";

}

//Функция-обработчик нажатия на кнопку "<<"

function btnFirst_OnClick() {

 //Проверяем, были ли сделаны изменения в форме

 if (objListPersons.IsChanged) { //Изменения были сделаны

  //Сохраняем данные в XML-файле

  objListPersons.SaveData();

  //Заново загружаем данные из XML-файла в массив PersonArr

  objListPersons.FileToArray();

 }

 //Переходим к первой записи в массиве

 objListPersons.FirstRecord();

 //Загружаем в форму данные из массива PersonArr

 //для первой записи

 objListPersons.LoadDialog();

 //Выводим сообщение в заголовке окна

 doc.title = "Запись N " + (objListPersons.CurRecord + 1);

}

//Функция-обработчик нажатия на кнопку "<"

function btnPrevious_OnClick() {

 //Проверяем, были ли сделаны изменения в форме

 if (objListPersons.IsChanged) {  //Изменения были сделаны

  //Сохраняем данные в XML-файле

  objListPersons.SaveData();

  //Заново загружаем данные из XML-файла в массив PersonArr

  objListPersons.FileToArray();

 }

 //Переходим к предыдущей записи в массиве

 objListPersons.PreviousRecord();

 //Загружаем в форму данные из массива PersonArr

 //для текущей записи

 objListPersons.LoadDialog();

 //Выводим сообщение в заголовке окна

 doc.title = "Запись N " + (objListPersons.CurRecord + 1);

}

//Функция-обработчик нажатия на кнопку "Новая запись"

function btnNew_OnClick() {

 //Проверяем, были ли сделаны изменения в форме

 if (objListPersons.IsChanged) { //Изменения были сделаны

  //Сохраняем данные в XML-файле

  objListPersons.SaveData();

  //Заново загружаем данные из XML-файла в массив PersonArr

  objListPersons.FileToArray();

 }

 //Добавляем новую запись в XML-файл

 objListPersons.NewRecord();

 //Загружаем в форму данные из массива PersonArr

 //для добавленной записи

 objListPersons.LoadDialog();

 //Выводим сообщение в заголовке окна

 doc.title = "Добавлена новая запись";

}

//Функция-обработчик нажатия на кнопку "Удалить"

function btnDelete_OnClick() {

 //Удаляем текущую запись из XML-файла

 objListPersons.DelRecord();

 //Загружаем в форму данные из массива PersonArr

 //для первой записи

 objListPersons.LoadDialog();

 //Выводим сообщение в заголовке окна

 doc.title = "Запись удалена";

}

//Функция-обработчик нажатия на кнопку ">"

function btnNext_OnClick() {

 //Проверяем, были ли сделаны изменения в форме

 if (objListPersons.IsChanged) { //Изменения были сделаны

  //Сохраняем данные в XML-файле

  objListPersons.SaveData();

  //Заново загружаем данные из XML-файла в массив PersonArr

  objListPersons.FileToArray();

 }

 //Переходим к следующей записи в массиве

 objListPersons.NextRecord();

 //Загружаем в форму данные из массива PersonArr

 //для текущей записи

 objListPersons.LoadDialog();

 //Выводим сообщение в заголовке окна

 doc.title = "Запись N " + (objListPersons.CurRecord + 1);

}

//Функция-обработчик нажатия на кнопку ">>"

function btnFinal_OnClick() {

 //Проверяем, были ли сделаны изменения в форме

 if (objListPersons.IsChanged) { //Изменения были сделаны

  //Сохраняем данные в XML-файле

  objListPersons.SaveData();

  //Заново загружаем данные из XML-файла в массив PersonArr

  objListPersons.FileToArray();

 }

 //Переходим к последней записи в массиве

 objListPersons.FinalRecord();

 //Загружаем в форму данные из массива PersonArr

 //для текущей записи

 objListPersons.LoadDialog();

 //Выводим сообщение в заголовке окна

 doc.title = "Запись N " + (objListPersons.CurRecord + 1);

}

//Функция-обработчик изменения текста в полях ввода

function txtBoxOnChange() {

 //Устанавливаем признак изменения данных в форме

 objListPersons.IsChanged = true;

 //Выводим сообщение в заголовке окна

 doc.title = "Редактирование данных";

} 

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Обработка событий 

Из книги автора

Обработка событий  Теперь самое время рассмотреть один ключевой вопрос Web-программирования: события, их возникновение и


Специальные селекторы CSS, предназначенные для работы с элементами управления

Из книги автора

Специальные селекторы CSS, предназначенные для работы с элементами управления Язык CSS предоставляет несколько специальных селекторов, с помощью которых можно неявно привязать стиль к элементам управления на основе их состояния. Все они относятся к структурным


Работа с элементами управления

Из книги автора

Работа с элементами управления Толку от Web-формы немного, если вводимые в ней данные никак не обрабатываются. Поскольку мы занимаемся исключительно клиентскими интернет-технологиями, обрабатывать данные мы будем в Web-сценариях.А чтобы обработать в Web-сценариях данные,


Средства библиотеки Ext Core для управления свободно позиционируемыми элементами

Из книги автора

Средства библиотеки Ext Core для управления свободно позиционируемыми элементами Настала пора рассмотреть методы объекта Element библиотеки Ext Core, с помощью которых мы можем управлять свободно позиционируемыми элементами Web- страницы. Их немного.Метод position задает способ


Обработка событий

Из книги автора

Обработка событий Теперь самое время рассмотреть один ключевой вопрос Web-программирования: события, их возникновение и обработка. Понятие события и его обработки Рассматривая примеры Web-сценариев, мы исходили из предположения, что они выполняются при загрузке


Специальные селекторы CSS, предназначенные для работы с элементами управления

Из книги автора

Специальные селекторы CSS, предназначенные для работы с элементами управления Язык CSS предоставляет несколько специальных селекторов, с помощью которых можно неявно привязать стиль к элементам управления на основе их состояния. Все они относятся к структурным


Работа с элементами управления

Из книги автора

Работа с элементами управления Толку от Web-формы немного, если вводимые в ней данные никак не обрабатываются. Поскольку мы занимаемся исключительно клиентскими интернет-технологиями, обрабатывать данные мы будем в Web-сценариях.А чтобы обработать в Web-сценариях данные,


Средства библиотеки Ext Core для управления свободно позиционируемыми элементами

Из книги автора

Средства библиотеки Ext Core для управления свободно позиционируемыми элементами Настала пора рассмотреть методы объекта Element библиотеки Ext Core, с помощью которых мы можем управлять свободно позиционируемыми элементами Web- страницы. Их немного.Метод position задает способ


Глава 7. Обработка событий

Из книги автора

Глава 7. Обработка событий События генерируются оконной системой или Qt в ответ на различные действия. Когда пользователь нажимает или отпускает клавишу или кнопку мышки, генерируется событие клавиши клавиатуры или кнопки мышки; когда окно впервые выводится на экран,


Работа с элементами управления окна

Из книги автора

Работа с элементами управления окна Точно так же как и в обычных формах VBA, элементы управления в окне Помощника предоставляют пользователю возможность взаимодействия с программой. Окно Помощника может содержать элементы управления трех типов: флажки, надписи (могут


Дополнительно о работе с элементами управления

Из книги автора

Дополнительно о работе с элементами управления В главе 10 вы познакомились с наиболее важными элементами управления и их использованием. В настоящем разделе я дам вам дополнительные советы о работе с отдельными типами элементами управления, а также расскажу об элементах


Работа с базовыми элементами управления

Из книги автора

Работа с базовыми элементами управления Пространство имен System.Windows.Forms определяет множество "базовых элементов управления", которые можно видеть во многих типичных окнах (это кнопки, надписи, текстовые окна, переключатели и т.д.). Вы, наверное, уже знаете об основных


Работа с другими элементами управления

Из книги автора

Работа с другими элементами управления Итак, мы с вами выяснили, как работать большинством базовых элементов управления Windows Forms (Label, TextBox, и т.д.). Следующей задачей будет рассмотрение элементов графического интерфейса, обладающих более сложными функциональными


Обработка серверных событий

Из книги автора

Обработка серверных событий С учетом сегодняшнего состояния World Wide Web нельзя не принимать во внимание природу взаимодействия браузера и Web-сервера. В основе такого взаимодействия лежит цикл запросов и ответов HTTP в процессе выполнения которых состояния не сохраняются. И


2.3. Окно с элементами управления

Из книги автора

2.3. Окно с элементами управления После того как мы рассмотрели создание простейшего окна, самое время позаботиться о его наполнении элементами управления. Для стандартных элементов управления в системе уже зарегистрированы классы окон. Их перечень следующий:• BUTTON –