2011-08-26 30 views
0

考慮一個場景JavaScript的全局數組問題

我有被聲明爲全球

比如JavaScript數組:

var globalarray=new Array(); 

接下來我有兩個多選擇框

  • selectboxa
  • selectboxb

如果我從selectboxa和selectboxb中選擇多個值,則選擇框內的所有選項值都是動態的, 。我收集全局數組中的選定值。

重要:如果我選擇無論從selectboxa值或selectboxb沒有問題,但如果我從selectboxa選擇或者和selectboxb它產生了一個問題

問題:雖然節省了我收集選擇的值從數組,如果我選擇4個值從selectboxa和下一個3選擇框b值這樣或者我改變,最後它包含所有值作爲每個全局數組,但我不希望這樣只使用一個全局數組,並單獨獲取selectboxa值和selectbox b值分離在相同時間是可能的。

如果有任何疑問,請問我。

+3

請三立格式化您的文章。 – deceze

+0

你的問題是什麼?以「問題:」開頭的段落似乎沒有描述一個。 –

+0

此外,多年來還沒有對大寫字母徵稅。您可以像正常的英語語法所要求的那樣,在您的問題中使用盡可能多的語言。 –

回答

0

我想我知道你想要什麼......

var globalObject = { 
    selecta:[], 
    selectb:[] 
} 
function setSel(sel) { 
    globalObject[sel.name].length=0; 
    for (var i=sel.selectedIndex, n=0;i<sel.options.length;i++) { 
    if (sel.options[i].selected) globalObject[sel.name][n++]=sel.options[i].value; 
    } 
} 

<select name="selecta" onChange="setSel(this)"> 
. 
. 
. 
<select name="selectb" onChange="setSel(this)"> 

也許這則

var globalArray = []; 

function setSel(theForm) { 
    var sela = form.selecta; 
    var selb = form.selectb; 
    globalArray.length=0; 
    for (var i=0, n=0;;i++) { 
    if (sela.options.length<i && sela.options[i].selected) globalArray[n++]="a."+i+":"+sela.options[i].value; 
    if (selb.options.length<i && selb.options[i].selected) globalArray[n++]="b."+i+":"+selb.options[i].value; 
    } 
} 

<select name="selecta" onChange="setSel(this.form)"> 
. 
. 
. 
<select name="selectb" onChange="setSel(this.form)"> 
+0

謝謝你沒問題,但我懷疑只使用單個數組我們可以實現這一點.... – bala

+0

顯示你想如何顯示數據... – mplungjan