我想显示多个选定选项的多个结果,这里我显示的是我的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函数中改变什么?
答案 0 :(得分:0)
将document.getElementsByName("q1[]");
替换为document.getElementsByName("q1");
答案 1 :(得分:0)
result = "1:" + e[j].value;
这看起来就像每次找到匹配项时初始化结果一样。 (即删除先前的查找并用新的查找覆盖它)
你应该使用
result += j+":" +e[j].value;
虽然我没有看到这是如何存储多个数据元素的好方法。
也许你应该使用数组?
result.push(e[j].value);
(在数组中,您需要将结果var初始化为数组var result = new Array;