Графическая кнопка пересылки данных на Web-сервер

Элемент input со значением type="image" создает элемент в виде графического изображения. Щелчок мышью по изображению (графической кнопке) действует аналогично щелчку по кнопкеsubmit.

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

· src (обязательный атрибут) – задает адрес изображения;

· name – задает имя кнопки;

· alt – задает текст для изображения, который выводится при загрузке изображения и в том случае, если загрузка изображения в Web-браузере отключена;

· usemap – ссылка на клиентскую карту ссылок (этот атрибут не работает в Internet Explorer и Safari);

· disabled (без значения) – если задан, изображение переводится в неактивное (отключенное) состояние и не реагирует на щелчок мышью.

Если на изображении элемента щелкнуть мышью и в Firefox и Opera не задан атрибут usemap, то координаты указа­теля мыши в виде имя-элемента. x= n & имя-элемента. y= m (где имя-элемента – значение атрибута name, а m и n – значения координат x и y) включаются Web-браузером в список атрибутов формы, посылаемых на сервер. Если атрибут name не задан, координаты передаются в виде x= n &y= m.

Если в Firefox и Opera задан атрибут usemap, то графическая кнопка обрабатывается как карта ссылок, в соответствии со ссылками для областей изображения, указанными в элементах area.

Для всех Web-браузеров для кнопки-изображения можно задать стили блоковой модели документа. Для Internet Explorer и Firefox можно дополнительно задать цвет фона.

Для графической кнопки в интерфейсе HTMLInputElement DOM2 HTML, помимо общих свойств элемента input, определены следующие свойства:

· src – значение атрибута src;

· name – значение атрибута name;

· alt – значение атрибута alt;

· usemap – значение атрибута usemap;

· disabled (false или true) – состояние графической кнопки (активное или неактивное);

· form (только для чтения) – содержит объект HTMLFormElement формы, к которой принадлежит графическая кнопка.

Пример 4.5.29. Использование графической кнопки передачи:

1. В документе HTML задана следующая форма:

<form action="https://localhost/Greeting.php"

id="imageForm">

<table>

<tr>

<td>Введите имя: </td>

<td><input type="text" name="login"

value="Иванов" id="login"/></td>

</tr><tr>

<td>Введите пароль: </td>

<td><input type="password" name="pass"

value="" id="pass"/></td>

</tr><tr>

<td colspan="2" style="text-align:center">

<input type="image"

src="images/FormImageButton.png"

name="imgSubmit" id="imageButton"/></td>

</tr>

</table>

</form>

При вводе пароля в форме Web-страница примет следующий вид:

После нажатия графической кнопки поле адреса в Web-браузере примет следующий вид:

2. Если в Web-браузерах Firefox и Opera в предыдущем примере для элемента input добавить атрибут usemap="#callMap" и задать следующую карту ссылок:

<map name="callMap">

<area shape="rect" coords="0,0,168,38"

href="javascript:formSend('userReg')"

alt="Регистрация"/>

<area shape="rect" coords="0,39,169,76"

href="javascript:formSend('userCheck')"

alt="Вход в систему"/>

</map>

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

function formSend(mode)

{

// Ошибок во входных данных нет

isError = false;

// Получение имени пользователя

login = document.getElementById("login").value;

// Получение пароля пользователя

pass = document.getElementById("pass").value;

// Если не задано имя пользователя

if(login == "")

{

// Во входных данных есть ошибки

isError = true;

// Вывод сообщения об ошибке

alert("Не задано имя пользователя");

}

// Если не задан пароль пользователя

if(pass == "")

{

// Во входных данных есть ошибки

isError = true;

// Вывод сообщения об ошибке

alert("Не задан пароль пользователя");

}

// Если в данных есть ошибки

if(isError)

// Выход из функции

return;

// Если регистрация пользователя

if(mode == "userReg")

// Формирование значения атрибута

// action в форме для регистрации

document.getElementById("imageForm").action =

"https://localhost/Registration.php?" +

"login=" + login + "&pass=" + pass;

else

// Формирование значения атрибута

// action в форме для входа в систему

document.getElementById("imageForm").action =

"https://localhost/Greeting.php?" +

"login=" + login + "&pass=" + pass;

// Передача данных формы на Web-сервер

document.getElementById("imageForm").submit();

}

Если при вводе в Firefox не заданы оба компонента (имя и пароль) или не задан хотя бы один компонент, то выводятся следующие сообщения:

Если введены данные для нового пользователя:

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

Если же введены данные для уже зарегистрированного пользователя:

и выполнен щелчок по нижней части изображения (кнопке Вход в систему), то строка адреса Web-браузера будет иметь следующий вид:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: