Работа с элементами управления
Работа с элементами управления
Толку от Web-формы немного, если вводимые в ней данные никак не обрабатываются. Поскольку мы занимаемся исключительно клиентскими интернет-технологиями, обрабатывать данные мы будем в Web-сценариях.
А чтобы обработать в Web-сценариях данные, введенные в элементы управления, мы должны их как-то получить оттуда. Кроме того, нам пригодится возможность манипулировать элементами управления из Web-сценариев: делать их доступными и недоступными, устанавливать и сбрасывать флажки, включать переключатели, выбирать пункты списков и пр. И, поскольку львиная доля Web-сценариев — это обработчики событий, мы должны знать, какие события поддерживают элементы управления и когда они возникают.
Вот об этом и пойдет сейчас разговор.
Свойства и методы объекта HTMLElement, применяемые для работы с элементами управления
Сначала мы рассмотрим самые полезные для нас свойства и методы объектов Web-обозревателя, представляющих различные элементы управления. Запомним: это именно объекты Web-обозревателя, производные от объекта HTMLElement.
Свойство disabled позволяет сделать элемент управления доступным или недоступным для посетителя. Значение true этого свойства делает элемент управления доступным, значение false — недоступным. Листинг 20.14 иллюстрирует пример.
Листинг 20.14
<FORM ACTION="#">
<P>
<INPUT TYPE="checkbox" ID="updates" NAME="updates">
Я хочу получать письма со списком обновлений Web-сайта
</P>
<P>Почтовый адрес: <INPUT TYPE="text" ID="email" NAME="email"></P>
</FORM>
.
Ext.getDom("email"). disabled = false;
Здесь мы с помощью метода getDom получаем экземпляр объекта HTMLElement, представляющий поле ввода почтового адреса email, и делаем его недоступным для ввода, присвоив свойству disabled значение false.
Свойство readOnly позволяет сделать элемент управления доступным или недоступным для ввода. Значение true этого свойства делает элемент управления недоступным для ввода, значение false — доступным:
Ext.getDom("email"). readOnly = false;
Свойство value задает или возвращает значение, введенное в поле ввода или область редактирования, в виде строки:
var sEmail = Ext.getDom("email"). value;
Свойство checked позволяет получить или задать состояние флажка или переключателя — установлен он или нет. Значение true обозначает, что флажок или переключатель установлен, значение false — сброшен:
Ext.get("updates"). on("click", function() { var htelEmail = Ext.getDom("email"); htelEmail.disabled = this.checked;
});
Здесь мы привязываем к флажку updates функцию — обработчик события click, которую тут же и объявляем. Эта функция делает доступным для посетителя поле ввода email, если флажок установлен, и недоступным — если он сброшен. Наша задача упрощается тем, что переменная this, доступная в теле функции- обработчика события и хранящая элемент Web-страницы, в котором обрабатывается событие, хранит этот элемент в виде экземпляра объекта HTMLElement. Спасибо разработчикам Ext Core!
Еще один пример приведен в листинге 20.15.
Листинг 20.15
<FORM ACTION="#">
<P>
<INPUT TYPE="radio" ID="updates_yes" NAME="updates" CHECKED>
Я хочу получать письма со списком обновлений Web-сайта
</P>
<P>
<INPUT TYPE="radio" ID="updates_no" NAME="updates">
Я не хочу получать письма со списком обновлений Web-сайта
</P>
<P>Почтовый адрес: <INPUT TYPE="text" ID="email" NAME="email"></P>
</FORM>
.
Ext.get("updates_yes"). on("click", function() { var htelEmail = Ext.getDom("email"); htelEmail.disabled = this.checked;
});
В листинге 20.15 мы выполняем аналогичные действия, но уже с группой из двух переключателей updates2. Обратим внимание, что мы проверяем состояние только первого переключателя этой группы — updates_yes. В группе может быть включен только один переключатель, и если посетитель включит второй переключатель этой группы, первый переключатель отключится. Фактически группа из двух переключателей ведет себя как флажок.
Свойство selectedIndex задает или возвращает номер выбранного в списке пункта в виде числа. При этом:
— если список позволяет выбирать одновременно только один пункт, возвращается номер именно этого пункта;
— если список позволяет выбирать сразу несколько пунктов, возвращается номер первого выбранного пункта;
— если ни один пункт в списке не выбран, возвращается значение –1.
Понятно, что пользы от свойства selectedIndex будет больше в том случае, если список позволяет выбирать только один пункт одновременно. Хотя в любом случае его можно применять для проверки, выбран ли в списке хоть один пункт. Листинг 20.16 иллюстрирует пример.
Листинг 20.16
<FORM ACTION="#">
<P>
Выполнять поиск по
<SELECT ID="search_in" NAME="search_in">
<OPTION>названиям</OPTION>
<OPTION>ключевым словам</OPTION>
<OPTION SELECTED>названиям и ключевым словам</OPTION>
</SELECT>
</P>
</FORM>
.
var iIndex = Ext.getDom("search_in"). selectedIndex;
if (iIndex == -1) {
//если в списке не выбран ни один пункт, делаем одно
} else {
//если в списке выбран какой-либо пункт, делаем другое
}
Свойство options возвращает коллекцию пунктов списка. Эта коллекция является
экземпляром объекта HTMLOptionsCollection:
var clItems = Ext.getDom("search_in"). options;
Свойство length объекта HTMLOptionsCollection возвращает число элементов в коллекции, т. е. количество пунктов в списке:
var iItemsCount = clItems.length;
Для доступа к отдельным пунктам в этой коллекции мы можем использовать числовые индексы, как и в случае массива:
var htelSecondItem = clItems[1];
Здесь мы получаем второй пункт списка.
Отдельный пункт списка представляется экземпляром объекта HTMLOptionElement. Он поддерживает уже знакомое нам свойство disabled, позволяющее разрешить или запретить доступ к данному пункту списка.
А еще он поддерживает свойство selected, указывающее, выбран ли данный пункт списка. Значение true обозначает, что пункт списка выбран, а значение false — не выбран. Это свойство удобно применять, чтобы выяснить, какие пункты выбраны в списке, позволяющем выбирать сразу несколько пунктов (листинг 20.17).
Листинг 20.17
<FORM ACTION="#">
<P>
С помощью каких тегов HTML формируется таблица?
<SELECT ID="answer" NAME="answer" SIZE="5" MULTIPLE>
<OPTION>TR</OPTION>
<OPTION>DIV</OPTION>
<OPTION>TABLE</OPTION>
<OPTION>TH</OPTION>
<OPTION>TT</OPTION>
<OPTION>HEAD</OPTION>
<OPTION>TD</OPTION>
</SELECT>
</P>
</FORM>
.
var clItems = Ext.getDom("answer"). options;
if ((clItems[0].selected) && (clItems[2].selected)
&& (clItems[3].selected) && (clItems[6].selected)) {
var s = "Вы ответили правильно!";
} else {
var s = "Неправильно! Будьте внимательнее.";
}
В листинге 20.17 мы создали что-то наподобие онлайнового экзамена. Посетителю требуется выбрать в списке answer пункты, представляющие теги HTML, с помощью которых создаются таблицы. Если все эти пункты выбраны, ответ считается правильным.
Свойство form возвращает экземпляр объекта HTMLElement, представляющий Web-форму, в которой находится данный элемент управления:
var htelForm = Ext.getDom("answer"). form;
Метод focus делает данный элемент управления активным. Он не принимает пара- метров и не возвращает результата:
Ext.getDom("email"). focus();
Метод blur делает данный элемент управления, наоборот, неактивным; при этом фокус ввода переносится на следующий в порядке обхода элемент управления. Данный метод также не принимает параметров и не возвращает результата:
Ext.getDom("email"). blur();
Метод select выделяет все содержимое поля ввода или области редактирования. Он не принимает параметров и не возвращает результата:
Ext.getDom("email"). select();
Метод click позволяет имитировать щелчок на кнопке. Он не принимает параметров и не возвращает результата (листинг 20.18).
Листинг 20.18
<FORM ACTION="#">
<P>
Найти:
<INPUT TYPE="search" ID="keyword" NAME="keyword" SIZE="40">
<INPUT TYPE="button" ID="find" NAME="find" VALUE="Искать!">
</P>
</FORM>
.
Ext.getDom("find"). click();
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Работа с элементами XSLT
Работа с элементами XSLT Для того чтобы создавать таблицы стилей XSLT, вы должны хорошо знать элементы XSLT, такие как <xsl:template> и <xsl:stylesheet>. Эти элементы поддерживают большое число атрибутов, и W3C выработал ряд формальных определений типов данных, которые можно присваивать
Обработка событий, генерируемых элементами управления формы
Обработка событий, генерируемых элементами управления формы В нашем сценарии мы будем обрабатывать события, связанные с нажатием на кнопки в форме и с изменением текста в полях ввода. Для этого нужно, во-первых, получить ссылку на соответствующий элемент управления в
Специальные селекторы CSS, предназначенные для работы с элементами управления
Специальные селекторы CSS, предназначенные для работы с элементами управления Язык CSS предоставляет несколько специальных селекторов, с помощью которых можно неявно привязать стиль к элементам управления на основе их состояния. Все они относятся к структурным
Свойства и методы объекта HTMLElement , применяемые для работы с элементами управления
Свойства и методы объекта HTMLElement, применяемые для работы с элементами управления Сначала мы рассмотрим самые полезные для нас свойства и методы объектов Web-обозревателя, представляющих различные элементы управления. Запомним: это именно объекты Web-обозревателя,
Свойства и методы объекта Element , применяемые для работы с элементами управления
Свойства и методы объекта Element, применяемые для работы с элементами управления А теперь обратимся к объекту Element библиотеки Ext Core и посмотрим, что он может предложить нам для работы с элементами управления.Метод getValue возвращает значение, введенное в поле ввода или область
Средства библиотеки Ext Core для управления свободно позиционируемыми элементами
Средства библиотеки Ext Core для управления свободно позиционируемыми элементами Настала пора рассмотреть методы объекта Element библиотеки Ext Core, с помощью которых мы можем управлять свободно позиционируемыми элементами Web- страницы. Их немного.Метод position задает способ
Специальные селекторы CSS, предназначенные для работы с элементами управления
Специальные селекторы CSS, предназначенные для работы с элементами управления Язык CSS предоставляет несколько специальных селекторов, с помощью которых можно неявно привязать стиль к элементам управления на основе их состояния. Все они относятся к структурным
Работа с элементами управления
Работа с элементами управления Толку от Web-формы немного, если вводимые в ней данные никак не обрабатываются. Поскольку мы занимаемся исключительно клиентскими интернет-технологиями, обрабатывать данные мы будем в Web-сценариях.А чтобы обработать в Web-сценариях данные,
Свойства и методы объекта HTMLElement , применяемые для работы с элементами управления
Свойства и методы объекта HTMLElement, применяемые для работы с элементами управления Сначала мы рассмотрим самые полезные для нас свойства и методы объектов Web-обозревателя, представляющих различные элементы управления. Запомним: это именно объекты Web-обозревателя,
Свойства и методы объекта Element , применяемые для работы с элементами управления
Свойства и методы объекта Element, применяемые для работы с элементами управления А теперь обратимся к объекту Element библиотеки Ext Core и посмотрим, что он может предложить нам для работы с элементами управления.Метод getValue возвращает значение, введенное в поле ввода или область
Средства библиотеки Ext Core для управления свободно позиционируемыми элементами
Средства библиотеки Ext Core для управления свободно позиционируемыми элементами Настала пора рассмотреть методы объекта Element библиотеки Ext Core, с помощью которых мы можем управлять свободно позиционируемыми элементами Web- страницы. Их немного.Метод position задает способ
Работа с элементами управления окна
Работа с элементами управления окна Точно так же как и в обычных формах VBA, элементы управления в окне Помощника предоставляют пользователю возможность взаимодействия с программой. Окно Помощника может содержать элементы управления трех типов: флажки, надписи (могут
Дополнительно о работе с элементами управления
Дополнительно о работе с элементами управления В главе 10 вы познакомились с наиболее важными элементами управления и их использованием. В настоящем разделе я дам вам дополнительные советы о работе с отдельными типами элементами управления, а также расскажу об элементах
Работа с базовыми элементами управления
Работа с базовыми элементами управления Пространство имен System.Windows.Forms определяет множество "базовых элементов управления", которые можно видеть во многих типичных окнах (это кнопки, надписи, текстовые окна, переключатели и т.д.). Вы, наверное, уже знаете об основных
Работа с другими элементами управления
Работа с другими элементами управления Итак, мы с вами выяснили, как работать большинством базовых элементов управления Windows Forms (Label, TextBox, и т.д.). Следующей задачей будет рассмотрение элементов графического интерфейса, обладающих более сложными функциональными
2.3. Окно с элементами управления
2.3. Окно с элементами управления После того как мы рассмотрели создание простейшего окна, самое время позаботиться о его наполнении элементами управления. Для стандартных элементов управления в системе уже зарегистрированы классы окон. Их перечень следующий:• BUTTON –