После прохождения теоретической части пришло письмо об окончании теоретической части курса, будет ли практическая часть? |
Поля формы и свойство value
Концепция
Сегодня мы продолжим начатое в Уроке 17. Будем передавать в функцию данные, которые пользователь введет в поле формы. Затем эти данные будут использованы для поиска в Yahoo.
Сценарий
<SCRIPT type="text/javascript"> function Gofindit(){ var searchfor = document.formsearch.findthis.value; { var FullSearchUrl = "http://www.yahoo.com/bin/query?p=" + searchfor ; location.href = FullSearchUrl; }} </SCRIPT> <FORM NAME="formsearch" action=""> Найдите в Yahoo: <INPUT NAME="findthis" SIZE="40" TYPE="text"> <INPUT TYPE="button" VALUE="Искать" onClick="Gofindit()"> </FORM>
Результат работы сценария
На странице выводится строка "Найдите в Yahoo:", поле ввода и кнопка с надписью "Искать".
Разбор сценария
Этот сценарий снова требует четкого понимания иерархии объектов.
- Во-первых, создаем функцию с переменной searchfor (искать) под названием formsearch, внутри элемента findthis (найти), который обладает свойством value (значение). Она будет результатом чего-то происходящего в объекте document.
- Вторую функцию помещаем внутри первой. Видите вторую пару {фигурных скобок}?
- Для второй функции создаем еще одну переменную FullSearchUrl, которая представляет собой адрес поисковой машины Yahoo плюс значение переменной searchfor, полученное через команду document.formsearch.find.value.
- Наконец, location.href приравнивается переменной FullSearchUrl. После выполнения функции пользователь попадет на итоговую страницу поиска.
- Теперь переходим к командам формы. Их две: текстовое поле ( TEXT ), куда пользователь вводит свой запрос, и кнопка, запускающая функцию.
- Обратите внимание, что форма в целом называется formsearch. Помните, что мы говорили об иерархии объектов?
- Затем для текстового поля задаем имя findthis. Опять иерархия. Видите, как мы идем от большого к малому?
- Дальше соединяем кнопку с командой onClick, которая запускает функцию.
- Наконец заканчиваем форму командой </FORM>. Готово.
Задание
Измените сценарий так, чтобы он вызывал другую поисковую систему. И еще, пусть при отправке запроса появляется окошко с надписью "Сейчас поищем..."
Возможное решение
Если известен адрес поисковой машины, тогда никаких особых трудностей не будет. Но как его узнать? Идите на сайт, начните поиск и скопируйте адрес из адресной строки.
Раз нам нужно, чтобы окно всплывало до завершения поиска, убедитесь, что оно стоит у вас первым. Вот сценарий, который выполняет эту работу:
<SCRIPT type="text/javascript"> function Gofindit() { alert("Сейчас поищем..."); var search = document.formsearch.find.value; { var searchUrl = "http://www.yandex.ru/yandsearch?ctgl=11657&text=" + search; location.href = searchUrl; }} </script> <form name="formsearch"> Поискать в Яndex: <input type="button" value="Найти" onClick="Gofindit()"> </form>