2011-09-26 34 views
1

我正在嘗試構建一個選擇選項列表並將默認值應用於它。它似乎在Chrome中工作,但不在Firefox中。我的代碼是:Scriptaculous Builder未設置選定值在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的「選擇」組中選擇=,它並不適用於表現出什麼。硬刷新似乎也不能解決它。

有人有解決方案可以在所有瀏覽器上工作嗎?

謝謝。

回答

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; 

似乎在我的簡短測試中工作。