我的表格类似于:
<form action="MyForm.htm" method="GET">
<input type="checkbox" value="1" id="cb1" name="xxx"/>
<input type="checkbox" value="2" id="cb2" name="xxx"/>
<input type="checkbox" value="3" id="cb3" name="xxx"/>
<input type="submit" value="Go!"/>
</form>
选中此复选框并提交表单会产生以下网址:
/MyForm.htm?xxx=1&xxx=2&xxx=3
由于复选框都具有相同的name
,我期待这一点:
/MyForm.htm?xxx=1,2,3
我错过了什么吗?或者我看到的行为是否正确?在那种情况下:它不是用我期待的方式吗?
答案 0 :(得分:0)
function cal()
{
var res="";
var box = document.getElementsByName('xxx');
for(var i=0;i<box.length;i++)
{
if(box[i].checked)
{
res+= box[i].value;
if(box[i+1])
{
res+=",";
}
}
}
var form = document.getElementById('yourform');
var url = "whateverMypage.php?xxx="+res;
form.setAttribute('action',url);
}
传递res
作为参数,它将包含所有这些已检查的项目值
答案 1 :(得分:0)
这就是表单数据的发送方式(并且一直都是这样)。这些值作为单独的键值对发送,因为它们来自不同的字段,并且可以区分:
<input type="checkbox" value="1,2,3" name="xxx"/>
如果要从单独的值中创建单个逗号分隔值,则必须在发送表单之前更改数据,例如将值放在隐藏的输入中。