考虑一个场景
我有javascript数组,声明为全局
例如:
var globalarray=new Array();
接下来我有两个多选框
selectbox中的所有选项值都是动态的, 如果我从selectboxa和selectboxb中选择多个值。我在全局数组中收集选定的值。
重要提示:如果我从selectboxa或selectboxb中选择值没有问题,但如果我从selectboxa和selectboxb中选择它会产生问题
问题:保存时我从数组中收集选定的值,如果我从selectboxa中选择4个值,然后从selectbox b中选择接下来的3个值,或者我这样改变,最后它包含全局数组中的所有值,但我不想要比如只使用一个全局数组并单独获取selectboxa值,并且可以同时选择b b值。
如果有任何疑问,请问我。
答案 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)">