目录

说明

在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 }}&nbsp;
{% 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(){}):在数据处理上比较多,多用于遍历数组。

使用Ajax获取多选框用户选择的值问题的更多相关文章

  1. jquery 获取一组元素的选中项 - 函数、jquery获取复选框值、jquery获取单选按钮值

    做表单提交时,如果现在还在用form提交,用户体验很差,所以一般使用ajax提交. 其中需要获取每个表单输入元素的值,获取的时候像文本框这些还好说,Jquery提供了 .val() 方法,获取很方便, ...

  2. 《jquery权威指南2》学习笔记------ jquery获取复选框的值

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  3. asp.net在后台弹出confirm确认对话框并获取用户选择的值做出相应的操作

    在asp项目中,这种情况是经常出现的,前段时间通过查找资料以及自己尝试,找到一种解决方案,但是不知是否有更好的方案,以后发现再进行记录. 一.思路 在本次项目中,在一个函数中需要让用户判断,并根据用户 ...

  4. springMVC 复选框带有选择项记忆功能的处理

    前言:由于jsp管理页面经常会遇到复选框提交到JAVA后台,后台处理逻辑完成后又返回到jsp页面,此时需要记住jsp页面提交时复选框的选择状态,故编写此功能! 一.复选框的初始化 1.1.jsp页面 ...

  5. 复选框的全选+全不选+ajax传递复选框的value值+后台接受复选框默认值

    1.html代码 <!--全选框/全不选--> <input type="checkbox" name="all" id="all& ...

  6. jquery获取复选框checkbox的值

    jQuery API : each(callback) :以每一个匹配的元素作为上下文来执行一个函数. :checked :匹配所有选中的被选中元素(复选框.单选框等,不包括select中的optio ...

  7. jQuery选取所有复选框被选中的值并用Ajax异步提交数据

    昨天和朋友做一个后台管理系统项目的时候涉及到复选框批量操作,如果用submit表单提交挺方便的,但是要实现用jQuery结合Ajax异步提交数据就有点麻烦了,因为我之前做过的项目中基本上没用Ajax来 ...

  8. jq 如何获取多选框选中的值

    jquery如何获取多选框选中的值,有两种方法 1.通过id获取是否选中(单个) 1)引入jquery文件 2)Html设计如下 <div> <span>运动类:</sp ...

  9. 折腾一天,获取下列多选框的所有选中值,原生js可直接通过obj.val()来获取,可jq不行,要通过循环取值来获取;

    折腾一天,获取下列多选框的所有选中值,原生js可直接通过obj.val()来获取,可jq不行,要通过循环取值来获取;

随机推荐

  1. 基于Netty的RPC架构学习笔记(六):netty5案例学习

    文章目录 netty5服务端入门案例 netty5客户端入门案例 单客户端多连接程序 知识普及 线程池原理图 对象池原理图 对象组原理图 结论 理论结合实际 开干开干 总结 netty5服务端入门案例 ...

  2. python list基本操作一

    a = [1,2,3,1,2,3] 一.删除元素 1.按索引删除: a.pop(1) # 删除第二个值 # in:[1,2,3,2] # out:[1,3,2] 返回值:被删除的元素,这个时候list ...

  3. 20140415 HOG 不同继承方式的访问特性 虚函数工作原理

    1.HOG block重叠的好处 由于行人通常其形状可以视为柔体,人 的边缘位置不固定,而有一些移动,block 重叠后,一个边缘的梯度信息在两个相邻重叠的 block 中都能有所表达,这样即使边缘的 ...

  4. css样式高级技巧-选择器

    用<div>元素为网页 在编写样式表时,我们经常要用div元素来包装内容: <div> <p>Here are two paragraphs of content& ...

  5. HDU 3308 线段树求区间最长连续上升子序列长度

    题意:两种操作,Q L R查询L - R 的最长连续上升子序列长度,U pos val 单点修改值 #include <bits/stdc++.h> #define N 100005 us ...

  6. Pathfinding 模板题 /// BFS oj21413

    题目大意: Description Bessie is stranded on a deserted arctic island and wants to determine all the path ...

  7. **JLink Warning: Mis-aligned memory write: Address: 0x20000000, NumBytes: 2, Alignment: 2 (Halfword-aligned)

    网上也有同学遇到这个问题,http://www.openedv.com/thread-113049-1-3.html 根据他的经验我也重新安装了Jlink驱动: 顺便注意Dialog DLL:TARM ...

  8. 使用mapreduce对日志进行清洗

    网站日志分析项目案例(一)项目介绍:http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例(二)数据清洗:当前页面 网站日志分析项目案例 ...

  9. java 多项式

    /****************************************************************************** * Compilation: javac ...

  10. 利用DNSQuery 进行DNS查询

    #include <WinSock2.h> #include <WinDNS.h> #pragma comment (lib, "Dnsapi.lib") ...