对于我正在开发的项目,我需要一个单击(de)选项的多输入列表,它可以与Internet Explorer(10)一起使用。我发现和修改这个代码,这是工作得非常好:Javascript multiple select
但有一个问题:
应通过邮政法的PHP脚本发送的选择权的价值,但它发送只有一个选定的值。在搜索网页后,我发现我需要像数组一样命名我的<select>
的NAME。所以我将NAME="sel_current"
更改为NAME="sel_current[]"
。但是随着这一改变,这个脚本停止了工作。
我希望document.forms[0].sel_current
在init()
更改为document.forms[0].sel_current[]
将修复它,但它不会。
<HTML>
<HEAD>
<TITLE>Multi-select test</TITLE>
<SCRIPT LANGUAGE="JavaScript">
var multiSelect_current = new Object();
function storemultiSelect_current_current(obj) {
var name = obj.name;
multiSelect_current[name] = new Array();
for (var i=0; i<obj.options.length; i++) {
multiSelect_current[name][i] = obj.options[i].selected;
}
}
function changemultiSelect_current(obj) {
var name = obj.name;
for (var i=0; i<obj.options.length; i++) {
if (obj.options[i].selected) {
multiSelect_current[name][i] = !multiSelect_current[name][i];
}
obj.options[i].selected = multiSelect_current[name][i];
}
}
function init() {
storemultiSelect_current_current(document.forms[0].sel_current);
}
</SCRIPT>
</HEAD>
<BODY onLoad="init()">
<FORM>
<SELECT NAME="sel_current" MULTIPLE METHOD="post" SIZE=10 onChange="changemultiSelect_current(this)">
<OPTION value="1">1111</OPTION>
<OPTION value="2" selected>2222</OPTION>
<OPTION value="3">3333</OPTION>
<OPTION value="4">4444</OPTION>
<OPTION value="5" selected>5555</OPTION>
<OPTION value="6">6666</OPTION>
<OPTION value="7">7777</OPTION>
</SELECT>
</FORM>
</BODY>
</HTML>