使用Ajax获取多选框用户选择的值问题
2024-10-19 14:44:15
说明
在web开发过程中,将多选框的值提交到django后台,有两种提交方式:
- form表单提交
- ajax异步提交
我需要使用ajax将复选框的值提交到后台,记录一下当时碰到的问题
正文
前端接收到一个标签列表的queryset对象,在前端渲染出来复选框
复选框代码:
Tag标签:
{% for tags in tags_list %}
<input type="checkbox" name="tags" id="{{ tags.pk }}" value="{{ tags.name }}">{{ tags.name }}
{% endfor %}
如何将用户选择的多选框获取到,一起提交到后台?
可以采取下面的方式:
$(selector).each(function(){})
var tags = [];
$("input[name='tags']:checked").each(function (i) {
{# tags[i] = $(this).attr('id')#}
tags.push($(this).attr('id'))
});
- selector:属性选择器
- :checked:专门针对于表单筛选器
- ().each():遍历每个jQuery对象,为每个匹配的元素执行函数。
利用ajax请求将数据发送到后端
$.ajax({
url: '',
type: 'post',
data: {
'csrfmiddlewaretoken': '{{ csrf_token }}',
'content': Content,
'title': Title,
'tags': JSON.stringify(tags),
'catepory': $("input[name='catepory']:checked").val(),
}
对于想要前端传自定义对象数组到后端,可以有两种方式,一种使用默认的urlencoded,另一种使用json
对于想要前端传自定义对象数组到后端,
ajax请求中设置contentType:"application/json;"
ajax请求中设置data:JSON.stringify(tags)
后端接收
if request.is_ajax():
if request.method == "POST":
tags = request.POST.get('tags')
print(tags,type(tags))
注意后端get接收到的是一个字符串形式的容器类型的数据,可以使用eval
内置函数将字符串的引号去掉,变为原有的应该的有的数据类型
tags = eval(tags)
print(tags,type(tags))
讲到这里,想起来jQuery中的两个方法:
- $(selector).each(function(){}):在DOM操作上比较多,多用于遍历对象。
- $.each(obj,function(){}):在数据处理上比较多,多用于遍历数组。
最新文章
- Atitit.数据库存储引擎的原理与attilax 总结
- 小图标外链API
- shell中的函数、数组
- 【转】移动Web单页应用开发实践——页面结构化
- Linux客户端、服务器、窗口管理器的关系
- Python脚本控制的WebDriver 常用操作 <;二十六>; 上传文件
- Linux开机启动流程
- js判断一个字符串是否在另一个字符串中存在 indexOf
- Linux 查看文件修改
- 17_AOP入门准备_Salay案例(利用动态代理)
- [MVC4-基礎] 連動DropDownList - 使用jQuery、JSON
- Python学习笔记5(字符串与正则表达式)
- apt-get 安装路径
- sqoop: mysql to hive
- js中的拷贝问题
- cygwin pip安装
- ARM 汇编指令 DCD
- MySQL性能调优的10个方法 - mysql数据库栏目
- Go标准库之读写文件(File)
- Android MIME类型结构
热门文章
- [转]C++ 使用Makefile文件
- k8s 映射 外部服务
- 2D转换中的translate里调用matrix()的用法
- Hbase启动的时候出现:[RpcServer.handler=28,port=60000] ipc.RpcServer: RpcServer.handler=28,port=60000: exiting,master.HMasterCommandLine: Master exiting
- Apache Spark 2.2.0 中文文档 - Spark RDD(Resilient Distributed Datasets)
- JS事件 光标聚焦事件(onfocus)当网页中的对象获得聚点时,执行onfocus调用的程序就会被执行
- 关于python merge后数据行数增加的问题
- django项目基础
- LeetCode动态规划题总结【持续更新】
- postman在有登录认证的情况下进行接口测试!!!