对于我正在处理的项目,我需要一个单击(取消)选择的多输入列表,它可以与 Internet Explorer (10) 一起使用。我找到并修改了这段代码,效果很好:
但有个问题:
选定选项的值应通过 Post-Method 发送到 PHP 脚本,但它只发送一个选定值。在网上搜索后,我发现我需要将我的 NAME 命名为<select>
一个数组。所以我NAME="sel_current"
改为NAME="sel_current[]"
. 但是随着这个变化,这个脚本停止工作。
我希望改变document.forms[0].sel_current
toinit()
会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>