0
我有一個表單,用戶必須填寫16個單獨的元素。在這些元素的下拉列表中,值爲0-16。所有這些元素的初始值都是零。在javascript中更改下拉列表的值
用戶可以爲每個元素選擇1到16中的每個值,但他們只能選擇每個元素一次。當他們選擇每個值時,我正在改變所有元素的下拉值以消除選定的值。最後,每個下拉列表中剩下的值只有0,並且用戶爲該下拉列表選擇的值。如果用戶將值更改爲零,它還會將值返回。
我設置的方式在Chrome和FireFox中工作正常,但在IE中失敗。問題是opts.options
是一個未定義的錯誤。不知何故,它適用於所有瀏覽器,但IE瀏覽器。我想我需要將元素作爲對象傳遞給填充下拉列表的方法。
這裏是方法的調用方式在PHP/HTML,它也呼籲負載 方法來初始化的下拉菜單:
echo "<TD bgcolor=$color width=15><SELECT name='$pts' onChange='populatePoints(this)' </SELECT></TD>n";
下面是相關JS:
function populatePoints(x){
setOptions (document.form1.G1_Points)
setOptions (document.form1.G2_Points)
setOptions (document.form1.G3_Points)
setOptions (document.form1.G4_Points)
setOptions (document.form1.G5_Points)
setOptions (document.form1.G6_Points)
setOptions (document.form1.G7_Points)
setOptions (document.form1.G8_Points)
setOptions (document.form1.G9_Points)
setOptions (document.form1.G10_Points)
setOptions (document.form1.G11_Points)
setOptions (document.form1.G12_Points)
setOptions (document.form1.G13_Points)
setOptions (document.form1.G14_Points)
setOptions (document.form1.G15_Points)
setOptions (document.form1.G16_Points)
}
function setOptions (opts){
pointValue = opts.value
opts.options.length = 0
var x = 0
opts.options[x] = new Option(0)
x++
for (i=1;i<17;i++) {
if (document.form1.G1_Points.value != i &&
document.form1.G2_Points.value != i &&
document.form1.G3_Points.value != i &&
document.form1.G4_Points.value != i &&
document.form1.G5_Points.value != i &&
document.form1.G6_Points.value != i &&
document.form1.G7_Points.value != i &&
document.form1.G8_Points.value != i &&
document.form1.G9_Points.value != i &&
document.form1.G10_Points.value != i &&
document.form1.G11_Points.value != i &&
document.form1.G12_Points.value != i &&
document.form1.G13_Points.value != i &&
document.form1.G14_Points.value != i &&
document.form1.G16_Points.value != i &&
document.form1.G15_Points.value != i){
opts.options[x] = new Option(i)
x++}}
opts.value = pointValue
}
你爲什麼要這麼做?這似乎是忙碌的工作... – Endophage
你可以通過'document。['form'+ form_number] ['G'+ i +'_ Points']。value'來訪問你的表單,而不是做所有的複製粘貼 – hugomg