解决Django中checkbox复选框的传值问题
Django 中,html 页面通过 form 标签来传递表单数据。
对于复选框信息,即 checkbox 类型,点击 submit 后,数据将提交至 view 中的函数。
我们通过request.POST.get() 函数来获取来自 html 页面的值,但是该函数只能 get 到选中的最后一个值。
因此想要传递选中的多个值,需要用 request.POST.getlist() 函数
该函数返回一个列表,可通过迭代来获取列表中每一项的值。
补充知识:解决checkbox复选框选中传值,不选中不传值的方案
解决checkbox复选框选中传值,不选中不传值的方案
问题描述:
一个form表单中的结构是这样的:
则页面显示结果是:
如上填写数据,经过序列化后的数据是:
[ {"id":"1","infoType":"11","infoName":"名称1","fileIsOpen":"o"}, {"id":"2","infoType":"12","infoName":"名称2","fileIsOpen":"n"} ]
从数据中明显看书fileIsOpen字段的checkbox复选框选中则传值是"o",未被选中则传值是"n",其中这是错误的数据,因为被选中传的值是on,也就是说checkbox复选框选中传值,不选中不传值。那么怎么解决不选中也传值的问题呢?
解决方案:
我们可以设置隐藏域来代替checkbox复选框传递数据,具体的页面修改如下:
checkbox复选框对应的点击事件:
再次输入相同的数据传递的数据是:
[ {"id":"1","infoType":"11","infoName":"名称1","fileIsOpen":"0"}, {"id":"2","infoType":"22","infoName":"名称2","fileIsOpen":"1"} ]
从数据可以这次传递的数据是正确的
上述方案存在的问题
如果页面什么不传递,
则传递的数据是这样的:
[ {"fileIsOpen":"0"}, {"fileIsOpen":"0"} ]
因此后台在接受到数据后需要判断List集合中的对象的必选要素,如果不包含必传要素,就算传入上述数据也是不录入数据库的数据,则可以舍去这些数据。
以上这篇解决Django中checkbox复选框的传值问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
django-利用session机制实现唯一登录的例子
配置连接数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': '数据库名称', 'USER': 'root', 'PASSWORD': '123456', 'HOST': '10.18.62.2', 'PORT': '3306', } } 生成session表 python manage.py makemigrations python manage.py migrate 登录时记住保存用户登录信
-
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
自定义实现 PyQt5 下拉复选框 ComboCheckBox 一.前言 由于最近的项目需要具有复选功能,但过多的复选框会影响界面布局和美观,因而想到把 PyQt5 的下拉列表和复选框结合起来,但在 PyQt5 中并没有这样的组件供我们使用,所以想要自己实现一个下拉复选框,主要就是继承 QComboBox 类,然后将复选框 QCheckBox 加入其中,并实现相应的功能. 最终实现的下拉复选框效果如下: 二.代码实现 1.主要方法 在 PyQt5 中,有几个主要的方法需要了解一下,方法名称和对应
-
Django使用list对单个或者多个字段求values值实例
开发环境:Ubuntu16.04+Django 1.11.9+Python2.7 使用list对values进行求值: 单个字段的输出结果: price_info=list(Book.objects.filter(auth_id='Yu').values('book_price')) print price_info [{'book_price': 26}, {'book_price': 28}, {'book_price': 27}] 输出为列表里面包含字典 这样是因为这个表里有多条符合aut
-
解决Django中checkbox复选框的传值问题
Django 中,html 页面通过 form 标签来传递表单数据. 对于复选框信息,即 checkbox 类型,点击 submit 后,数据将提交至 view 中的函数. 我们通过request.POST.get() 函数来获取来自 html 页面的值,但是该函数只能 get 到选中的最后一个值. 因此想要传递选中的多个值,需要用 request.POST.getlist() 函数 该函数返回一个列表,可通过迭代来获取列表中每一项的值. 补充知识:解决checkbox复选框选中传值,不选中不传
-
Android中CheckBox复选框控件使用方法详解
CheckBox复选框控件使用方法,具体内容如下 一.简介 1. 2.类结构图 二.CheckBox复选框控件使用方法 这里是使用java代码在LinearLayout里面添加控件 1.新建LinearLayout布局 2.建立CheckBox的XML的Layout文件 3.通过View.inflate()方法创建CheckBox CheckBox checkBox=(CheckBox) View.inflate(this, R.layout.checkbox, null); 4.通过Linea
-
ASP.NET中 CheckBox复选框控件的使用
我们可以使用两种类型的 ASP.NET 控件将复选框添加到 Web 窗体页上:单独的 CheckBox 控件或 CheckBoxList 控件.两种控件都为用户提供了一种输入布尔型数据(真或假.是或否)的方法. 这里我们单独使用CheckBox,先来看看它的属性 属性 描述 .NET AutoPostBack 规定在 Checked 属性已改变后,是否立即向服务器回传表单.默认是 false. 1.0 CausesValidation 规定点击 Button 控件时是否执行验证. 2.0 Che
-
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
具体代码如下所示: Ext.define('AM.view.test.ReceiptList', { extend: 'Ext.grid.Panel', alias: 'widget.receiptlist', id : 'receiptlist', selModel : { selType : 'checkboxmodel', mode : 'SIMPLE', checkOnly : true, renderer : function(v,p,record) { if (record.data
-
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
在项目中发现layui数据表格勾选复选框checkbox的时候,转到新的一页勾选,上一次的勾选不会选中,即没有记忆功能.导致跟后台交互传递参数不全问题. 为了解决此问题,我们可以借助缓存,每勾选一个,保存到缓存变量数组中,取消勾选的时候,删除缓存的对应项. <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <
-
js点击文本框弹出可选择的checkbox复选框
本文分享一段代码实例,它能够点击文本框的时候,能够弹出下拉的checkbox复选框,选中复选框就能够将值写入文本框中,可能在实际应用中的效果没有这么直白简单,不过可以作为一个例子演示,以便于学习者理解和扩展. 代码如下: <html> <head> <meta charset="gb2312"> <title>js点击文本框弹出可选择的checkbox复选框</title> <style type="text/
-
javascript动态添加checkbox复选框的方法
本文实例为大家介绍了javascript如何动态添加checkbox复选框: 在实际应用中可能需要动态的添加复选框,下面就简单介绍一下如何实现此效果. 单纯的创建一个复选框是很容易的,代码如下: var oCheckbox=document.createElement("input"); oCheckbox.setAttribute("type","checkbox"); oCheckbox.setAttribute("id"
-
JS实现CheckBox复选框全选、不选或全不选功能
CheckBox控件表明一个特定的状态(即选项)是选定 (on,值为1) 还是清除 (off,值为0).在应用程序中使用该控件为用户提供"True/False"或"yes/no"的选择.因为 CheckBox 彼此独立工作,所以用户可以同时选择任意多个 CheckBox,进行选项组合. CheckBox复选框JS实现全选.不选.全不选功能,很简单,具体内容如下 思路: 1.获取元素 2.给全选 不选 反选添加点击事件 3.用for循环checkbox 4.把chec
-
yii实现CheckBox复选框在同一行显示的方法
本文实例讲述了yii实现CheckBox复选框在同一行显示的方法.分享给大家供大家参考.具体实现方法如下: yii 让CheckBoxList默认输出的是换行了,一个checkbox是换一行了,这样对有些设置就不合要求了,下面我们就来实现yii让CheckBoxList在同一行显示. Yii的checkBoxList是一列,如下图所示: 网上有人说 复制代码 代码如下: $form->checkBoxList($model,'like',array(1=>'篮球',2=>'羽毛球',3=
-
PHP中CheckBox多选框上传失败的代码写法
用惯Java和其他语言的时候,表单上传只需要checkbox的name相同的时候就可以上传了 <input type="checkbox" name="checkbox" value="1"> 选项 <input type="checkbox" name="checkbox" value="2"> 选项 <input type="checkbox&
随机推荐
- LNMP编译安装之nginx安装配置方法图文教程
- DOS和Linux近年来的发展比较
- ASP.NET向Javascript传递变量两种实现方法
- 关于原生js中bind函数的简单实现
- js 控制下拉菜单刷新的方法
- js 声明数组和向数组中添加对象变量的简单实例
- 精彩回顾!Visual Studio 2017正式版发布全纪录
- PHP中mysql_field_type()函数用法
- Python基本语法经典教程
- Android控件之EditView常用属性及应用方法
- 开源SNS系统-ThinkSNS
- 深入理解Python中的*重复运算符
- ASP FSO文件处理函数大全
- JavaWeb开发使用Cookie创建-获取-持久化、自动登录、购物记录、作用路径
- jquery里的正则表达式说明
- jQuery 绑定事件到动态创建的元素上的方法实例
- js中自定义方法实现停留几秒sleep
- 自动化测试读写64位操作系统的注册表
- Android之EditText控制禁止输入空格和回车
- 深入C#中使用SqlDbType.Xml类型参数的使用详解