Доступ к элементам формы

Как правило, доступ к элементу HTML осуществляется по его идентификатору с помощью метода document.getElementById(). Но для доступа к HTML-формам чаще всего используется свойство document.forms. Свойство document.forms представляет собой массив всех форм на текущей странице. Поэтому если на странице находится лишь одна форма, то она доступна с помощью первого элемента массива document.forms[0]. С другой стороны, форме можно присвоить имя:

<form name="mainForm">
...
</form>

Тогда она доступна с помощью элемента массива document.forms["mainForm"].

Обращение ко всем элементам формы также осуществляется по имени, которое служит в качестве индекса массива в свойстве elements формы. Допустим, например, что у первой формы на странице имеется элемент с атрибутом name=”element1″. Тогда доступ к этому элементу осуществляется с помощью следующего кода JavaScript:

document.forms[0].elements["element1"]

Имеется и более краткая форма доступа к информации формы. Например, сокращенная форма доступа к элементу “element1″ формы “mainForm” выглядит так:

document.mainForm.element1

Каждый элемент формы поддерживает свойство form, указывающее на ту форму, в которой находится данный элемент. Поэтому выражение this.form часто используется в коде для упрощения доступа к форме на уровне элементов полей данной формы, не прибегая к массиву document.forms.

Доступ к текстовым полям

window.alert(f.elements["textfield"].value);

В HTML поддерживаются три вида текстовых полей.

  • Однострочные текстовые поля: <input type=”text” />
  • Многострочные текстовые поля: <textarea>…</textarea>
  • Поля ввода паролей: <input type=”password” />

Несмотря на то что эти поля действуют по-разному в браузере, доступ к ним в JavaScript осуществляется практически одинаково. Атрибут value каждого из этих полей содержит текст внутри поля. Его можно использовать как для чтения, так и для записи текста в поле.

В приведенном ниже фрагменте кода демонстрируется два следующих приема: доступ к свойству поля и применение выражения this.form для упрощенного доступа к форме данного поля.

<script type="text/javascript">
function showText(f) {
  window.alert(f.elements["textfield"].value);
}
</script>
<form>
  <input type="text" name="textfield" />
  <input type="button" value="Show text" onclick="showText(this.form);" />
</form>

Доступ к флажкам

f.elements["chkbox"].checked ? "checked." : "not checked."

Флажок в HTML-форме может находиться в двух состояниях: установленном и сброшенном. Поэтому обращение к флажку их кода JavaScript чаще всего осуществляется для определения его состояния.

Свойство checked флажка возвращает логическое значение true, если флажок установлен, а в противном случае — логическое значение false.

<script type="text/javascript">
function showStatus(f) {
  window.alert("The checkbox is " +
    (f.elements["chkbox"].checked ? "checked." : "not checked."));
}
</script>
<form>
  <input type="checkbox" name="chkbox" />
  <input type="button" value="Show status" onclick="showStatus(this.form);" />
</form>

Продолжение следует…

Оставьте свой отзыв