Scriptaculous Builder не устанавливает выбранное значение в FireFox - PullRequest
1 голос
/ 27 сентября 2011

Я пытаюсь создать список опций выбора и применить к нему значение по умолчанию. Кажется, работает в Chrome, но не в Firefox. Мой код:

var sel2 = Builder.node('select',{
  name: 'type_' + tId,
  id: 'type_' + tId
});
$A(templateTypes).each(function(t,idx){
  var o = Builder.node('option',{value:dataID},DataName);
  sel2.appendChild(o);
  if (curID == dataID) {
    $(sel2).selectedIndex = idx;
  }
});

Я пробовал такие вещи, как:

if (curID == dataID) {
  var o = Builder.node('option',{value:dataID,selected:'selected'},DataName);
}

То, что хотя set selected = "selected" в Firebug, это не относится к тому, что было показано. Жесткое обновление, похоже, тоже не решает.

Есть ли у кого-нибудь решение, которое будет работать во всех браузерах?

Спасибо.

1 Ответ

0 голосов
/ 28 сентября 2011

Кажется, что добавление нового узла в поле выбора сбивает с толку Firefox.Как об этом вместо этого:

var sel2 = Builder.node('select',{
  name: 'type_' + tId,
  id: 'type_' + tId
});

// store the desired index in this
var selectedIndex = 0;

$A(templateTypes).each(function(t,idx){
  var o = Builder.node('option',{value:dataID},DataName);
  sel2.appendChild(o);
  if (curID == dataID) {
    selectedIndex = idx;
  }
});

// now set the selected index _after_ we've added all the options:
sel2.selectedIndex = selectedIndex;

Кажется, работает в моем кратком тесте.

...