1

我有类似这样的形式:

<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

我错过了什么吗?还是我看到的行为实际上是正确的?在那种情况下:它以前不是我所期望的方式吗?

4

2 回答 2

0

这就是表单数据的发送方式(而且一直都是这样)。这些值作为单独的键值对发送,因为它们来自单独的字段,并且可以区分:

<input type="checkbox" value="1,2,3" name="xxx"/>

如果要从单独的值中生成单个逗号分隔值,则必须在发送表单之前更改数据,例如将值放入隐藏输入中。

于 2013-09-11T07:22:49.357 回答
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,它将包含所有这些检查的项目值

于 2013-09-11T07:17:54.693 回答