Основы Web-инжиниринга. Часть 1. Громов Ю.Ю - 88 стр.

UptoLike

ACTION="javascript:void(0);">
<INPUT NAME=i_name SIZE=30 MAXLENGTH=30>
</FORM>
Поэтому в программах на JavaScript к ним обращаются по имени:
window.document.f_name.i_name.value="Текстовое поле";
Того же эффекта можно достичь, используя массив форм загруженного документа:
window.document.forms[0].elements[0].value="Текстовое поле";
В данном примере не только к форме, но и к полю формы мы обращаемся как к элементу массива.
Рассмотрим подробнее объект Form, который соответствует тегу FORM.
Свойства Методы События
Action
Method
Target
Elements[]
Encoding
Reset()
Submit()
OnReset
OnSubmit
Сами по себе методы, свойства и события объекта Form используются нечасто. Их переопределение обычно связано с
реакцией на изменения значений полей формы.
Свойство action отвечает за вызов скрипта (CGI-скрипта). В нем указывается его (скрипта) URL. Но там, где можно
указать URL, можно указать и его схему JavaScript:
<FORM METHOD=post
ACTION="javascript:window.alert('We use JavaScript-code as an URL'); void(0);">
<INPUT TYPE=submit VALUE="Продемонстрировать JavaScript в action">
</FORM>
Применение void(0) отменяет перезагрузку документа, и браузер не генерирует событие submit, т.е. не обращается к
серверу при нажатии на кнопку, как при стандартной обработке форм.
Свойство method определяет метод доступа к ресурсам HTTP-сервера из программы-браузера. В зависимости от того,
как автор HTML-страницы собирается получать и обрабатывать данные из формы, он может выбрать тот или иной метод
доступа. На практике чаще всего используются методы GET и POST.
JavaScript-программа может изменить значение этого свойства:
<FORM NAME=m ACTION="javascript:window.alert('Мы используем JavaScript-код в качестве an URL');void(0);">
<SCRIPT>
document.write("<FONT COLOR=navy>По умолчанию установлен метод</FONT>"+document.m.method+".");
</SCRIPT>
<INPUT TYPE=button onClick="window.document.main.document. m.method='post';" VALUE="Метод POST">
<INPUT TYPE=button onClick="window.document.main.document. m.method='get';" VALUE="Метод GET">
<INPUT TYPE=submit VALUE="JavaScript в ACTION">
</FORM>
По умолчанию установлен метод GET.
В данном примере стоит обратить внимание на два момента:
1. Прежде чем открывать окно предупреждения, следует нажать кнопку "Метод POST". Если этого не сделать, то поя-
вится сообщение об ошибке JavaScript. Формирование URL происходит при генерации события submit, а вызов скрипта
после того, как событие сгенерировано. Поэтому вставить переопределение метода в обработчик события нельзя, так как к
этому моменту будет уже сгенерирован URL, который, в свою очередь, будет JavaScript-программой с символом "?" на кон-
це. Переопределение метода должно быть выполнено раньше, чем произойдет событие submit.
2. В тело документа через тег SCRIPT встроен JavaScript-код, который сообщает метод доступа, установленный в
форме по умолчанию. Этот тег расположен сразу за тегом FORM. Ставить его перед тегом FORM нельзя, так как в момент по-
лучения интерпретатором управления объект FORM не будет создан, и, следовательно, работать с его свойствами не пред-
ставляется возможным.
Никаких других особенностей свойство method не имеет. В данном свойстве можно указать и другие методы доступа,
отличные от GET и POST, но это требует дополнительной настройки сервера.
Свойство target определяет имя окна, в которое следует загружать результат обращения к CGI-скрипту. Применение
значения этого свойства внутри JavaScript-программ не оправдано, так как всегда можно получить идентификатор окна или
задействовать встроенный массив frames[0] и свойства окна opener, top, parent и т.п. Для загрузки внешнего файла в
некоторое окно всегда можно применить метод window.open(). Но тем не менее, использовать это свойство можно:
for(i=1;i<id.frames.length;i++)
{
if(id.frames[i].name==
id.frames[0].document.f0.s0.options[id.frames[0].document.f0.s0.selectedIndex].text)
{
id.frames[i].document.open();