Scriptaculous Builder未在FireFox中设置选定值

时间:2011-09-26 20:13:48

标签: javascript prototypejs scriptaculous builder

我正在尝试构建一个选择选项列表并对其应用默认值。它似乎适用于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);
}

即使在Firebug中设置selected =“selected”,它也不适用于显示的内容。硬刷新似乎也没有解决它。

某人是否有适用于所有浏览器的解决方案?

感谢。

1 个答案:

答案 0 :(得分:0)

似乎在选择框中添加一个新节点会混淆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;

似乎在我的简短测试中工作。