Читать «Введение в JavaScript для Мага» онлайн - страница 27

Стефан Кох

Соответствующий скрипт будет простым текстом HTML. И никакого программирования на JavaScript здесь вовсе не нужно! Конечно за исключением того случая, если Вам понадобится перед пересылкой проверить данные, занесенные в форму — и здесь уже Вам действительно понадобится JavaScript. Я должен лишь добавить, что команда mailto работает не повсюду — например, поддержка для ее отсутствует в Microsoft Internet Explorer 3.0.

<form method=post action="mailto: [email protected]" enctype="text/plain">

Нравится ли Вам эта страница?

<input name="choice" type="radio" value="1">Вовсе нет.<br>

<input name="choice" type="radio" value="2" CHECKED>Напрасная трата времени.<br>

<input name="choice" type="radio" value="3">Самый плохой сайт в Сети.<br>

<input name="submit" type="submit" value="Send">

</form>

Параметр enctype="text/plain" используется для того, чтобы пересылать именно простой текст без каких-либо кодируемых частей. Это значительно упрощает чтение такой почты.

Если Вы хотите проверить форму прежде, чем она будет передана в сеть, то для этого можете воспользоваться программой обработки событий onSubmit. Вы должны поместить вызов этой программы в тэг <form>. Например:

function validate() {

// check if input ok

//…

if (inputOK) return true

else return false;

}

<form… onSubmit="return validate()">

Форма, составленная таким образом, не будет послана в Интернет, если в нее внесены некорректные данные.

Выделение определенного элемента формы

С помощью метода focus() Вы можете сделать вашу форму более дружественной. Так, Вы можете выбрать, который элемент будет выделен в первую очередь. Либо Вы можете приказать браузеру выделить ту форму, куда были введены неверные данные. То есть, что браузер сам установит курсор на указанный Вами элемент формы, так что пользователю не придется щелкать по форме, прежде чем что-либо занести туда. Сделать это Вы можете с помощью следующего фрагмента скрипта:

function setfocus() {

document.first.text1.focus();

}

Эта запись могла бы выделить первый элемент для ввода текста в скрипте, который я уже показывал. Вы должны указать имя для всей формы — в данном случае она называется first — и имя одного элемента формы — text1. Если Вы хотите, чтобы при загрузке страницы данный элемент выделялся, то для этого Вы можете дополнить Ваш тэг <body> атрибутом onLoad. Это будет выглядеть как:

<body onLoad="setfocus()">

Остается еще дополнить пример следующим образом:

function setfocus() {