JavaScript 1.1: добавлено свойство |
Конструктор Option
или тэг HTML OPTION
.
Option
конструктором:new Option([text[, value[, defaultSelected[, selected]]]])
После создания Option-объекта вы можете добавлять его в список выбора, используя
массив Select.options
.
text | |
value | Специфицирует значение, возвращаемое на сервер, когда опция выбрана и форма отправляется. |
defaultSelected | Специфицирует, выбрана ли опция по умолчанию (true или false). |
selected |
Свойство | Описание |
---|---|
| |
|
Индекс с базой 0 элемента в массиве |
|
Количество элементов в массиве |
| |
| |
| Специфицирует значение, возвращаемое на сервер, когда опция выбрана и форма отправляется. |
Этот объект наследует методы watch
и unwatch
из объекта Object
.
Обычно Вы работаете с объектами Option
в контексте списка выбора/selection list (объект Select
).
Когда JavaScript создаёт Select
-объект
для каждого тэга SELECT
в документе, он создаёт Option
-объекты
для тэгов OPTION
внутри тэга SELECT
и помещает эти
объекты в массив options
объекта Select
.
Кроме того, Вы можете создавать новые опции, используя конструктор Option
,
и добавлять эти опции в список выбора. После создания опции и добавления её в Select
-объект,
Вы обязаны обновить документ, используя history.go(0)
. Этот
оператор обязан быть последним. При перезагрузке документа переменные теряются,
если они не сохранены в куках или значениях элементов формы.
Вы можете использовать свойства Option.selected
и Select.selectedIndex
для изменения статуса выбора опции.
Select.selectedIndex
это целое число, специфицирующее индекс выбранной опции. Оно чаще всего
используется в Select
-объектах, которые созданы без атрибута MULTIPLE
.
Следующий оператор устанавливает свойство selectedIndex
объекта Select
:
document.myForm.musicTypes.selectedIndex = i
Option.selected
это Булево
значение, специфицирующее текущий статус выбора опции Select
-объекта.
Если опция выбрана, её свойство selected
имеет значение true;
иначе - false. Это чаще всего используется в Select
-объектах,
созданных с атрибутом MULTIPLE
. Следующий оператор устанавливает свойство selected
опции в true:Для изменения текста опции используйте свойство Option.text
.
Например, форма имеет следующий Select
-объект:
<SELECT name="userChoice">
<OPTION>Choice 1
<OPTION>Choice 2
<OPTION>Choice 3
</SELECT>
Вы можете установить текст элемента i
й на основе
текста, введённого в текстовое поле whatsNew
:
myform.userChoice.options[i].text = myform.whatsNew.value
Вам не нужно перезагружать или обновлять документ после изменения текста опции.
Создаётся два Select
-объекта, один с и другой без атрибута MULTIPLE
.
Никакие опции этих объектов первоначально не определены. Когда пользователь
щёлкает кнопку, ассоциированную с Select
-объектом, функция populate
создаёт 4 опции для Select
-объекта и выбирает первую опцию.
<SCRIPT>
function populate(inForm) {
colorArray = new Array("Red", "Blue", "Yellow", "Green")
var option0 = new Option("Red", "color_red")
var option1 = new Option("Blue", "color_blue")
var option2 = new Option("Yellow", "color_yellow")
var option3 = new Option("Green", "color_green")
for (var i=0; i < 4; i++) {
eval("inForm.selectTest.options[i]=option" + i)
if (i==0) {
inForm.selectTest.options[i].selected=true
}
}
history.go(0)
}
</SCRIPT>
<H3>Select Option() constructor</H3>
<FORM>
<SELECT NAME="selectTest"></SELECT><P>
<INPUT TYPE="button" VALUE="Populate Select List" onClick="populate(this.form)">
<P>
</FORM>
<HR>
<H3>Select-Multiple Option() constructor</H3>
<FORM>
<SELECT NAME="selectTest" multiple></SELECT><P>
<INPUT TYPE="button" VALUE="Populate Select List" onClick="populate(this.form)">
</FORM>
Булево значение, указывающее статус выбора данной опции по умолчанию в списке выбора.
JavaScript 1.1. Это свойство запорчено/разрушено по умолчанию. О разрушении данных см. книгу Клиентский JavaScript. Руководство.
Если опция выбрана по умолчанию, значение свойства defaultSelected
равно true; иначе - false.
defaultSelected
первоначально отражает использование атрибута SELECTED
в тэге OPTION
; однако установка defaultSelected
переопределяет атрибут SELECTED
.
Вы можете установить свойство defaultSelected
в любое время.
Отображение соответствующего Select
-объекта
не обновляется, когда Вы устанавливаете свойство defaultSelected
опции, оно обновляется только при установке свойств Option.selected
или Select.selectedIndex
.
Объект Select
, созданный без
атрибута MULTIPLE
, может иметь выбранной по умолчанию только одну
опцию. Если Вы устанавливаете defaultSelected
в таком объекте,
любые предыдущие установки по умолчанию, включая установки атрибутом SELECTED
,
очищаются. Если Вы устанавливаете defaultSelected
в Select
-объекте,
созданном с атрибутом MULTIPLE
, предыдущие установки выбора не изменяются.
Здесь функция restoreDefault
возвращает объект musicType
Select
в состояние по умолчанию. Цикл for
использует массив options
для вычисления каждой опции Select
-объекта. Оператор if
устанавливает свойство selected
, если defaultSelected
имеет значение true.
function restoreDefault() {
for (var i = 0; i < document.musicForm.musicType.length; i++) {
if (document.musicForm.musicType.options[i].defaultSelected == true) {
document.musicForm.musicType.options[i].selected=true
}
}
}
В предыдущем примере предполагается, что Select
-объект
определён примерно так:
<SELECT NAME="musicType">
<OPTION SELECTED> R&B
<OPTION> Jazz
<OPTION> Blues
<OPTION> New Age
</SELECT>
Option.selected
, Select.selectedIndex
Индекс с базой 0 элемента в массиве Select.options
.
Свойство index
специфицирует позицию элемента в массиве Select.options
, начиная с 0.
Здесь функция getChoice
возвращает значение свойства index
выбранной опции. Цикл for
вычисляет каждую опцию Select
-объекта musicType
.
Оператор if
находит выбранную опцию.
function getChoice() {
for (var i = 0; i < document.musicForm.musicType.length; i++) {
if (document.musicForm.musicType.options[i].selected == true) {
return document.musicForm.musicType.options[i].index
}
}
return null
}
Предполагается, что Select
-объект таков:
<SELECT NAME="musicType">
<OPTION SELECTED> R&B
<OPTION> Jazz
<OPTION> Blues
<OPTION> New Age
</SELECT>
Обратите внимание, что можно также определить индекс выбранной опции этого
примера путём использования document.musicForm.musicType.selectedIndex.
Количество элементов в массиве Select.options
.
Значение этого свойства такое же, что и значение Select.length
.
См. в Option.index
пример для свойства length
.
Булево значение, указывающее на то, выбрана ли опция Select
-объекта.
JavaScript 1.1. Это свойство запорчено/разрушено по умолчанию. О разрушении данных см. книгу Клиентский JavaScript. Руководство.
Если опция Select
-объекта выбрана,
значение свойства selected
опции равно true; иначе - false. Вы
можете установить свойство selected
в любое время. Вид
ассоциированного Select
-объекта
обновляется сразу после установки свойства selected
для одной из его опций.
Вообще, свойство Option.selected
используется чаще, чем свойство Select.selectedIndex
,
в Select
-объектах, созданных с
атрибутом MULTIPLE
. С помощью свойства Option.selected
Вы можете вычислять каждую опцию массива Select.options
для определения множественного выбора, а также можете выбирать отдельные опции без изменения статуса выбора других опций.
См. примеры для defaultSelected
.
Option.defaultSelected
, Select.selectedIndex
Строка, специфицирующая текст опции в списке выбора.
JavaScript 1.1: свойство |
JavaScript 1.1. Это свойство запорчено/разрушено по умолчанию. О разрушении данных см. книгу Клиентский JavaScript. Руководство.
Свойство text
первоначально содержит текст, который идёт после тэга OPTION
в тэге SELECT
. Вы можете установить свойство text
в
любое время, и текст, отображаемый опцией в списке выбора, изменится.
Пример 1. Здесь функция getChoice
возвращает значение
свойства text
для выбраной опции. Цикл for
вычисляет
каждую опцию Select
-объекта musicType
. Оператор if
находит выбранную опцию.
function getChoice() {
for (var i = 0; i < document.musicForm.musicType.length; i++) {
if (document.musicForm.musicType.options[i].selected == true) {
return document.musicForm.musicType.options[i].text
}
}
return null
}
Предполагается, что Select
-объект таков:
<SELECT NAME="musicType">
<OPTION SELECTED> R&B
<OPTION> Jazz
<OPTION> Blues
<OPTION> New Age
</SELECT>
Пример 2. В следующей форме пользователь может ввести некоторый текст в первом текстовом поле, а затем ввести число от 0 до 2 (включительно) во втором текстовом поле. Когда пользователь щёлкает по кнопке, текст изменяется на номер выбранной опции, и эта опция выбирается.
<SCRIPT>
function updateList(theForm, i) {
theForm.userChoice.options[i].text = theForm.whatsNew.value
theForm.userChoice.options[i].selected = true
}
</SCRIPT>
<FORM>
<SELECT name="userChoice">
<OPTION>Choice 1
<OPTION>Choice 2
<OPTION>Choice 3
</SELECT>
<BR>
New text for the option: <INPUT TYPE="text" NAME="whatsNew">
<BR>
Option to change (0, 1, or 2): <INPUT TYPE="text" NAME="idx">
<BR>
<INPUT TYPE="button" VALUE="Change Selection"
onClick="updateList(this.form, this.form.idx.value)">
</FORM>
Строка, отражающая атрибут VALUE
опции.
JavaScript 1.1. Это свойство запорчено/разрушено по умолчанию. О разрушении данных см. книгу Клиентский JavaScript. Руководство.
Если атрибут VALUE
специфицируется в HTML, то свойство value
это строка, отражающая его. Если атрибут VALUE
не специфицируется в HTML,
то свойство value
это пустая строка. Свойство value
не
отображается на экране, а возвращается на сервер, если опция выбрана.
Не путайте это свойство со статусом выбора опции или текста, который
отображается вслед за ней. Свойство selected
определяет статус выбора объекта, а свойство defaultSelected
определяет статус выбора по умолчанию. Отображаемый текст специфицируется после
тэга OPTION
и соответствует свойству text
.
Дата последнего обновления: 28 мая 1999 года.
Copyright (c) 1999 Netscape Communications Corporation