Мастер-классы по Javascript Екатеринбург Ростов-на-Дону Москва Узнать больше...
Содержание (скрыть) Содержание (показать)

Свойства элементов

  1. input, textarea
  2. input type="checkbox", input type="radio"
  3. select, option
  4. Практика

Рассмотрим основные элементы формы и средства для работы с ними.

input, textarea

Для большинства типов input значение доступно на чтение-запись в value:

input.value = "Новое значение";
textarea.value = "Новый текст";

Не используйте textarea.innerHTML

Для элементов textarea также доступно свойство innerHTML, но лучше им не пользоваться: оно хранит только HTML, изначально присутствовавший в элементе. Кроме того, оно не преобразует HTML-entities.

Например, сравните значения value/innerHTML до того, как что-то ввели (будут разные!) и после (innerHTML не поменяется):

<textarea> &lt;a&gt; </textarea>
<script>
  var area = document.body.children[0];
</script>

<button onclick="alert(area.value); alert(area.innerHTML);">Вывести value и  innerHTML</button>

input type="checkbox", input type="radio"

Для этих элементов можно узнать или установить текущее «отмеченное» состояние.
Оно находится в свойстве checked (true/false).

if (input.checked) { 
  alert("Чекбокс выбран");
}

Обратите внимание на разницу значения атрибута и свойства. Атрибут имеет значение «как указано в HTML», а свойство — логическое, в соответствие со стандартом.

<input type="checkbox" checked>

<script>
var input = document.body.children[0];

alert(input.checked); // *!*true*/!*

alert(input.getAttribute('checked')); // *!*пустая строка*/!*
</script>

select, option

Элементы типа select, как и input, поддерживают свойство value.

Он обычно возвращает значение (value) выбранной опции, ну а в случае <select multiple> — значение первой из них.

var selectedOptionValue = select.value;

Элемент селекта в JavaScript можно выбрать двумя путями: поставив значение select.value, либо установив свойство select.selectedIndex:

select.selectedIndex = 0; // первый элемент
Установка selectedIndex = -1 очистит выбор.

Опции доступны через select.options.

Если select допускает множественный выбор (атрибут multiple), то значения можно получить/установить, сделав цикл по select.options:

<form name="form">
  <select name="genre" *!*multiple*/!*>
    <option value="blues" selected>Мягкий блюз</option>
    <option value="rock" selected>Жёсткий рок</option>
    <option value="classic">Классика</option>
  </select>
</form>

<script>
var form = document.body.children[0];
var select = form.elements.genre;

for (var i=0; i<select.options.length; i++) {
  var option = select.options[i];
*!*
  if(option.selected) {
    alert(option.value);
  }
*/!*
}
</script>

Спецификация: HTMLSelectElement.

new Option

В стандарте the Option Element есть любопытный короткий синтаксис для создания элемента с тегом option:

option = new Option( text, value, defaultSelected, selected);

Создаётся обычный DOM-элемент, как document.createElement('option'), но сразу с содержимым text и значением value:

option = new Option("Текст", "value"); 
// создаст <option value="value">Текст</option>

Если хочется сделать его выбранным, то последние два аргумента нужно поставить в true:

option = new Option("Текст", "value", true, true);

Дополнительные свойства option

У option есть особые свойства, которые могут оказаться полезными (см. The Option Element):

selected
выбрана ли опция
index
номер опции в списке селекта
text
Текстовое содержимое опции (то, что видит посетитель).

Практика

Есть селект:

<select>
  <option value="Rock">Рок</option>
  <option value="Blues" selected>Блюз</option>
</select>

При помощи JavaScript:

  1. Выведите значение и текст текущей выбранной опции.
  2. Добавьте опцию: <option value="Classic">Классика</option>.
  3. Сделайте её выбранной.
Решение
Решение

Решение:

<select>
  <option value="Rock">Рок</option>
  <option value="Blues" selected>Блюз</option>
</select>

<script>
  var select = document.body.children[0];

  // 1) 
  var selectedOption = select.options[select.selectedIndex];
  alert(selectedOption.value);

  // 2)
  var newOption = new Option("Classic", "Классика");
  select.appendChild(newOption);
 
  // 3)
  newOption.selected = true;
</script>

Напишите функцию validate(form), которая проверяет содержимое формы по клику на кнопку «Проверить».

Ошибки:

  1. Одно из полей не заполнено.
  2. Пароли не совпадают.

Ошибка должна сопровождаться сообщением. Например:

Исходный документ: tutorial/form/validate-src.html.

Решение
Решение

Решение: tutorial/form/validate.html.


Комментарии

  1. Приветствуются комментарии, содержащие дополнения и вопросы по статье, и ответы на них.
  2. Если ваш комментарий касается задачи -- откройте её в отдельном окне и напишите там.
  3. Комментарии без смысла, с рекламой или не о статье вообще - удаляются.
Наверх

Содержание

Реклама

Нашли опечатку?

Нашли опечатку на сайте? Что-то кажется странным?
Выделите соответствующий текст и нажмите Ctrl+Enter!

Последние Комментарии

Помоги другим!

Помоги другим узнать о хорошей статье!