我试图建立一个选择选项列表,并将默认值应用于它。它似乎可以在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”,它也不适用于显示的内容。硬刷新似乎也无法解决。
有人有可以在所有浏览器上使用的解决方案吗?
谢谢。
最佳答案
在选择框中添加新节点似乎使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;
在我的简短测试中似乎可以正常工作。