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

概述

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

解决方法我想到的就是

<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表单。这种做法很巧妙。
比如:

<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不选中怎么传值所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部