Javascript - Синтаксис окна выбора формы для выбранного варианта - PullRequest
0 голосов
/ 18 апреля 2011
if (document.myform.mycheckbox.checked)

Если флажок установлен, что-то сделать ...

... какая строка кода будет делать то же самое для опции окна выбора?

if (document.myform.myselectbox.myselection.selected)

Это что-то подобное? Кажется, я не могу найти то, что ищу.

То, что я делаю, здесь:

Ссылка на материал nada workola

1 Ответ

0 голосов
/ 18 апреля 2011

Вы ищете:

if (document.myform.myselectbox.selectedIndex != -1)

Если ничего не выбрано, индекс возвращает -1.

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

var selObj = document.myform.myselectbox;
var selIndex = selObj.selectedIndex;
var selOptionValue = selObj.options[selIndex].value;
var selOptionText = selObj.options[selIndex].text;

Однако Вы должны знать, что поведение также немного зависит от того, как оно отображается. С «единственным» элементом выбора (например, «выпадающим»), если вы не укажете, что конкретный параметр «выбран», то первый вариант (индекс 0) считается выбранным, так как он есть визуально отображается.

<select>
  <option>red</option><!-- "selected" by default when rendered -->
  <option>orange</option>
  <option>yellow</option>
  ...
</select>

Если у вас есть элемент select с атрибутом размера больше 1 (например, 6), то визуально не выбрано ни одного, поэтому по умолчанию элемент вернет -1 (если ни один не был выбран)

<select size="6">
  <option>red</option><!-- NOT "selected" by default when rendered -->
  <option>orange</option>
  <option>yellow</option>
  ...
</select>

В любом случае, вы можете использовать такой код, чтобы определить, что делать:

var mySelect = document.myform.myselectbox;
var selIndex = mySelect.selectedIndex;
if(selIndex != -1){
  //an option is selected
  if(selIndex == 0){
    //first option is selected
  } else if(selIndex == 1){
    //second is selected
  } else if(selIndex == 2){
    //third is selected
  }
} else {
  //no option is selected
}

Вы также можете написать это с помощью оператора switch / case, я только что расширил это, чтобы указать несколько значений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...