Подтвердить что ты не робот

Как выбрать опцию с использованием прототипа

Скажем, у меня есть HTML-форма, содержащая этот элемент select:

  <select name="mySelect" id="mySelect">
    <option value="1" id="option1">1</option>
    <option value="2" id="option2">2</option>
  </select>

Как использовать прототип для выбора одного из элементов опции?

Методы, перечисленные в ссылке API Form.Element, похоже, не помогают с этим.

edit: "select" Я имею в виду эквивалентный эффект атрибута "selected" для элемента option.

4b9b3361

Ответ 1

var options = $$('select#mySelect option');
var len = options.length;
for (var i = 0; i < len; i++) {
    console.log('Option text = ' + options[i].text);
    console.log('Option value = ' + options[i].value);
}

options - это массив всех элементов выбора в раскрывающемся списке #mySelect. Если вы хотите пометить один или несколько из них как выбранные, просто используйте свойство selected

// replace 1 with index of an item you want to select
options[1].selected = true;

Ответ 2

Чтобы получить выбранный вариант, используйте:

$$('#mySelect option').find(function(ele){return !!ele.selected})

Ответ 3

nils petersohn почти правильно понял, но, как правило, атрибут "id" не является тем, что выбирают люди. это небольшое изменение заставляет его работать.

var selectThis = 'option1';
$$('select#mySelectId option').each(function(o) {
  if(o.readAttribute('value') == selectThis) { // note, this compares strings
    o.selected = true;
    throw $break; // remove this if it a multi-select
  }
});

Ответ 4

Попробуйте следующее:

$('mySelect').setValue(1); // or whatever value you want to select

этот выбор будет выбирать option1

Ответ 5

Для выбора второго параметра по значению вы можете использовать это:

var myChoice = '2';

$$('select#mySelectId option').each(function(o) {
    o.selected = o.readAttribute('value') == myChoice;
});

Ответ 6

var itis = $(mySelectId).select('option[value="' + sValueToSelect + '"]');
if ( itis && itis.length > 0 )
    itis[0].selected = true;

Ответ 7

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

$('mySelect').value = 2; // 2 being the value you want selected

Ответ 8

var selectThis = 'option1';
$$('select#mySelect option').each(function(o){
      if(o.id==selectThis){o.selected = true;$break;}
});

Ответ 9

попробуйте это...

document.observe('dom:loaded', function() {
   $('mySelect').observe('change', function(event) {
    ...
   });
});