关闭

checkbox未选中状态不传递value的解决办法

401人阅读 评论(0) 收藏 举报
分类:

http://www.educity.cn/wenda/150481.html

checkbox未选中状态不传递value的解决办法

  <input type="checkbox" name="IsYellow" value="1" />

  做了一列name=IsYellow的checkbox,要求是保持整个序列的完整提交。后来发现checkbox 如果没有checked(选中状态),就不传递value值。也就是说做了10个checkbox,选中n个,那么传递value值的数组长度就是n。

  为了保持传递数据的完整性,有人说为每个checkbox配备一个hidden类型的表单对象来存放数据。这个方法可行但是代码量太大。尤其是当你希望这系列checkbox的name相同时,你就必须为每个checkbox增加id属性来和hidden类型对象对接。本人采用了另外一个方法,如下。

  //验证表单正确性 function checkForm() { var t1 = document.getElementById("enterPenal").getElementsByTagName("input"); for(i=0;i<t1.length;i++) { if(t1[i].type == "checkbox") { if(!(t1[i].checked)) { t1[i].checked = true; t1[i].value = "0"; } } } return true; }

  就是在表单提交之前,将checkbox序列全部checked(选中状态),并将其value(值)设置为0。红色背景部分为checkbox序列所在父对象,此举为了提高运算速度。

  经过此方法过滤后,checkbox序列被完整提交,原本被用户选定的checkbox的value为1,未被选定的value为0。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:810921次
    • 积分:11268
    • 等级:
    • 排名:第1388名
    • 原创:18篇
    • 转载:1987篇
    • 译文:1篇
    • 评论:28条
    文章分类
    最新评论