Django默认模版添加ajax,Django架构中使用ajax建立checkbox并传输参数

应用场景

在页面表格中,每行之前添加checkbox用于选择,在表头有check all的选择.选择以后,可以通过delete按钮,删除选择的当列数据.

代码实现

html文件 生成method='post'的表格,checkbox,删除按钮

{% csrf_token %}

Delete

TilteSummary

{% for new in news %}

{{ new.title }}{{ new.summary }}

{% endfor %}

javascript代码 参考Bootstrap之表格checkbox复选框全选

本身js功能里面具备了遍历表格加checkbox的功能,但是考虑到django模板与需要传递checkbox中生成的vaule问题,所以用django模板来森广场多选框,利用js来实现全选与选择的css效果渲染

$(function () {

function initTableCheckbox() {

var $thr = $('table thead tr');

var $checkAllTh = $('

');

/*将全选/反选复选框添加到表头最前,即增加一列*/

//$thr.prepend($checkAllTh);

/*“全选/反选”复选框*/

var $checkAll = $thr.find('input');

$checkAll.click(function (event) {

/*将所有行的选中状态设成全选框的选中状态*/

$tbr.find('input').prop('checked', $(this).prop('checked'));

/*并调整所有选中行的CSS样式*/

if ($(this).prop('checked')) {

$tbr.find('input').parent().parent().addClass('warning');

} else {

$tbr.find('input').parent().parent().removeClass('warning');

}

/*阻止向上冒泡,以防再次触发点击操作*/

event.stopPropagation();

});

/*点击全选框所在单元格时也触发全选框的点击操作*/

$checkAllTh.click(function () {

$(this).find('input').click();

});

var $tbr = $('table tbody tr');

var $checkItemTd = $('

');

/*每一行都在最前面插入一个选中复选框的单元格*/

//$tbr.prepend($checkItemTd);

/*点击每一行的选中复选框时*/

$tbr.find('input').click(function (event) {

/*调整选中行的CSS样式*/

$(this).parent().parent().toggleClass('warning');

/*如果已经被选中行的行数等于表格的数据行数,将全选框设为选中状态,否则设为未选中状态*/

$checkAll.prop('checked', $tbr.find('input:checked').length == $tbr.length ? true : false);

/*阻止向上冒泡,以防再次触发点击操作*/

event.stopPropagation();

});

/*点击每一行时也触发该行的选中操作*/

$tbr.click(function () {

$(this).find('input').click();

});

}

initTableCheckbox();

});

view层代码实现接受post的信息,删除数据

def editor_delete(request):

checkList = request.POST.getlist('checkbox')

btnVal = request.POST.get('btnDelete')

if checkList and btnVal == 'btnDelete':

for newId in checkList:

New.objects.filter(id=newId).delete()

messages.success(request, r"Selected for Editor" + " is deleted.")

checkList.remove(newId)

elif btnVal == 'btnDelete':

messages.error(request, r"Deleted for Editor" + " is not Selected.")

else:

pass

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值