Jquery和Django多个复选框

我是jquery的初学者所以请耐心等待.
我有一个jquery函数,允许我选择多个复选框并创建一个字符串,如下所示:

function getSelectedVals(){
     var tmp =[];
     $("input[name='checks']").each(function() {
     if ($(this).attr('checked'))
     {
        checked = ($(this).val());
        tmp.push(checked);
     }
     });
     var filters = tmp.join(',');
     alert(filters)
     return filters;
}

然后我调用django视图函数并传递字符串,如下所示:

selected = getSelectedVals();
var myurl = "/bills/delete/?id=" + selected;
$.ajax({
    type: "GET",
    url: myurl,
    data: selected,
    cache: false

});

在服务器上,我有一个删除视图函数,它迭代复选框值并操作列表.

def delete(request):
    global myarray
    idx = request.GET[u'id']
    listidx = idx.split(',')
    for l in listidx:
        value = myarray[int(l)]
        myarray.remove(value)
    return HttpResponse("/bills/jqtut/")

问题是在服务器上我作为GET字符串发送的所有索引都没有被处理,只有一半是.

请帮我!谢谢

最佳答案
从我所看到的,你就是这样做的.您应该在所有复选框上设置相同的名称.我不知道你为什么要通过GET发送它,我建议你通过POST发送它.

<input type="checkbox" name="vehicle" value="Bike" />
<input type="checkbox" name="vehicle" value="Car" />
<input type="checkbox" name="vehicle" value="Airplane" />

然后,在视图中使用getlist()方法:

def delete(request):
    values = request.POST.getlist(u'vehicle')
    # Handling goes here.

但无论如何,除非你真的需要做自定义的东西(但特殊情况不足以打破规则;),使用Django表单.已经有一个复选框列表OOTB.我不确定为什么你甚至会考虑在这种情况下使用JavaScript.

转载注明原文:Jquery和Django多个复选框 - 代码日志