我是靠谱客的博主 糟糕康乃馨,这篇文章主要介绍checkbox不选中怎么传值,现在分享给大家,希望可以做个参考。

啊算了,原来的还是不太行。。。
但这个最新的可以
之前就遇到类似的问题,在一个列表中,如果有复选框,并且不选中 会导致这个复选框不上传,导致后台接收不到复选框数据

解决方法我想到的就是

复制代码
1
2
3
4
5
6
7
8
9
10
<td> <input type="text" style="display: none;" name="is_joinrepository[]"> <input type="checkbox" class="form-control" onclick="$(this).prev().val($(this).is(':checked')?'1':'0');console.log($(this).prev().val())"/>入库 </td> <td> <input type="text" style="display: none;" name="is_complete[]" /> <input type="checkbox" class="form-control" onclick="$(this).prev().val($(this).is(':checked')?'1':'0');console.log($(this).prev().val())" />齐全 </td>

再不记录下来下次还会有问题


下面挺奇妙,但是没有我要的结果


别人的,贴过来记录一下。。真是太妙了!真是把html拿捏透了。。。
根据W3C的规则未选中的checkbox和禁用的控件不是有效控件,不会被POST。因此如果要未选中的checkbox表示值0的话,就不得不曲线完成了。
最近研究Zend Framework时候,发现其中的一个方法formCheckbox()。这个方法是生成checkbox表单的。但是它在生成checkbox的之前会生成一个hidden表单。这种做法很巧妙。
比如:

复制代码
1
2
3
<input type="hidden" name="foo" value="0"> <input type="checkbox" name="foo" id="foo" value="1">

生成这样的表单,当checkbox未选中的时候,提交的是hidden表单。值0就被提交到服务器了。
当checkbox都选中的时候,hidden和checkbox表单都被提交了,但是因为它们的name是一样的,所以hidden的值被checkbox覆盖了。所以就得到了数值1。
这种方法简单巧妙,值得推广。

最后

以上就是糟糕康乃馨最近收集整理的关于checkbox不选中怎么传值的全部内容,更多相关checkbox不选中怎么传值内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部