复选框值不在逗号分隔的字符串中

时间:2013-09-11 07:13:24

标签: c# html asp.net .net

我的表格类似于:

<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

我错过了什么吗?或者我看到的行为是否正确?在那种情况下:它不是用我期待的方式吗?

2 个答案:

答案 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"/>

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