复选框值不在逗号分隔的字符串中
本文关键字:分隔 字符串 复选框 | 更新日期: 2023-09-27 18:31:02
我有类似于这样的形式:
<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>
选中复选框并提交表单会产生以下 URL:
/MyForm.htm?xxx=1&xxx=2&xxx=3
由于复选框都具有相同的name
因此我期待这一点:
/MyForm.htm?xxx=1,2,3
我错过了什么吗?或者我看到的行为实际上是正确的?在这种情况下:以前不是我期望的方式吗?
这就是表单数据的发送方式(一直都是这样)。这些值作为单独的键值对发送,因为它们来自不同的字段,并且可以区分:
<input type="checkbox" value="1,2,3" name="xxx"/>
如果要使单个逗号分隔的值与单独的值分开,则必须在发送表单之前更改数据,例如,通过将值放在隐藏的输入中。
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
为参数,它将包含所有这些选中的项目值