0

对于我正在处理的项目,我需要一个单击(取消)选择的多输入列表,它可以与 Internet Explorer (10) 一起使用。我找到并修改了这段代码,效果很好:

但有个问题:

选定选项的值应通过 Post-Method 发送到 PHP 脚本,但它只发送一个选定值。在网上搜索后,我发现我需要将我的 NAME 命名为<select>一个数组。所以我NAME="sel_current"改为NAME="sel_current[]". 但是随着这个变化,这个脚本停止工作。

我希望改变document.forms[0].sel_currenttoinit()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>
4

1 回答 1

1

JSON.stringify(multiSelect_current[name])发送到您的服务器时,您可以使用finally。

function storemultiSelect_current_currentfor 循环中,修改:multiSelect_current[name][i][obj.options[i].innerText] = (obj.options[i].selected == true);

截屏 :

在此处输入图像描述

于 2014-01-15T12:13:37.087 回答