解决checkbox复选框选中传值,不选中不传值的方案

时间:2024-03-17 07:57:26

解决checkbox复选框选中传值,不选中不传值的方案

 

问题描述:

一个form表单中的结构是这样的:

解决checkbox复选框选中传值,不选中不传值的方案

则页面显示结果是:

解决checkbox复选框选中传值,不选中不传值的方案

如上填写数据,经过序列化后的数据是:

[

{"id":"1","infoType":"11","infoName":"名称1","fileIsOpen":"o"},

{"id":"2","infoType":"12","infoName":"名称2","fileIsOpen":"n"}

]

从数据中明显看书fileIsOpen字段的checkbox复选框选中则传值是"o",未被选中则传值是"n",其中这是错误的数据,因为被选中传的值是on,也就是说checkbox复选框选中传值,不选中不传值。那么怎么解决不选中也传值的问题呢?

 

解决方案:

我们可以设置隐藏域来代替checkbox复选框传递数据,具体的页面修改如下:

解决checkbox复选框选中传值,不选中不传值的方案

checkbox复选框对应的点击事件:

解决checkbox复选框选中传值,不选中不传值的方案

再次输入相同的数据传递的数据是:

[

{"id":"1","infoType":"11","infoName":"名称1","fileIsOpen":"0"},

{"id":"2","infoType":"22","infoName":"名称2","fileIsOpen":"1"}

]

从数据可以这次传递的数据是正确的

 

上述方案存在的问题

如果页面什么不传递,

解决checkbox复选框选中传值,不选中不传值的方案

则传递的数据是这样的:

[

{"fileIsOpen":"0"},

{"fileIsOpen":"0"}

]

因此后台在接受到数据后需要判断List集合中的对象的必选要素,如果不包含必传要素,就算传入上述数据也是不录入数据库的数据,则可以舍去这些数据。

 

参考文章:

https://blog.csdn.net/zr15829039341/article/details/78998176

https://blog.csdn.net/wangrongfei136/article/details/50211261

https://blog.csdn.net/xyanghomepage/article/details/37562179