2

我想显示多个选定选项的多个结果,这里我显示我的 PHP 和 JavaScript 代码。

function save() {
    if (!validateSave())
        return;
    var e;
    var result;
    e = document.getElementsByName("q1[]");
    for (var j = 0; j <= e.length - 1; j++) {
        if (e[j].checked) {
            result = "1:" + e[j].value;
            //break;
        }
} 

HTML 代码

 <div class="qright">
        <!-- multioption handler --------------------------------------------------->
        <input type="hidden" name="multioption" value="true"  />
                    <!-- end ------------------------------------------------------------------->
        <label for="q1"><input type="checkbox" name="q1[]" value="1" class="styled" />Reducing cost</label>
        <label for="q1"><input type="checkbox" name="q1[]" value="2" class="styled" />Upgrading your hardware and software infrastructure</label>
        <label for="q1"><input type="checkbox" name="q1[]" value="3" class="styled" />Aligning the IT goals with the overall business strategy</label>
        <label for="q1"><input type="checkbox" name="q1[]" value="4" class="styled" />Enabling agile working</label>
        <label for="q1"><input type="checkbox" name="q1[]" value="5" class="styled" />Streamlining supplier management</label>
        <label for="q1"><input type="checkbox" name="q1[]" value="6" class="styled" />Improving network availability/access</label>
        <label for="q1"><input type="checkbox" name="q1[]" value="7"class="styled"  />Improving the utilisation of your network</label>
    </div>    

如果我选择多个选项,那么它也只显示一个值,我应该在 JavaScript 函数中更改什么?

4

2 回答 2

0

替换document.getElementsByName("q1[]");document.getElementsByName("q1");

于 2012-05-10T13:26:08.997 回答
0
result = "1:" + e[j].value;

这看起来就像您每次找到匹配项时都会初始化结果。(即您删除以前的查找并用新查找覆盖它)

你应该使用

result += j+":" +e[j].value;

虽然我不明白这如何成为存储多个数据元素的好方法。

也许你应该使用一个数组?

result.push(e[j].value);

(在数组情况下,您需要将结果 var 初始化为数组var result = new Array;

于 2012-05-10T13:26:40.063 回答