0

我正在尝试发布复选框的值,但无法这样做。它首先将所有选中的框收集在一个数组中(datas- 在测试它时工作正常console.log(datas)),然后将它们一起发送。但我无法发布数据。我得到一个空数组。我哪里错了?

视图.py

if request.method == 'POST':
    selected_users = request.POST.getlist('users[]')
    return HttpResponse(selected_users)

jQuery

$(document).ready(function(){
    $('#submit').click(function() {
        var datas = new Array();
        var i = 0;

        $("input[type=checkbox]:checked").each(function() {
            datas[i] = $(this).val();
            i++;
        });   

        console.log(datas)   //works fine
        $.post("get_data/", {'users[]': datas}, function(data){
            alert(data);
        });   
    });    
})

网址.py

urlpatterns = patterns('',
    url(r'get_data/','apps.api.views.get_data', name = 'grabhalo_get_data'),
)

复选框

{% for user in users %}
    <input type="checkbox" class="check" value="{{user.id}}" />{{user.name}}<br>    
{%endfor%}

    <form id="form" method="POST" action="#">
       {% csrf_token %}
       <input type="text" class="span8 search-query" placeholder="Type here..." name="chat">
       <input type="submit" value="Send" class = "btn btn-primary" id = "submit">
   </form>

这是查看console.log时的参数

users[] 1
users[] 2

我猜views.py 中存在一些错误,但不确定。请帮我纠正同样的问题。

4

2 回答 2

0

1. 缺少防止默认

代替:

$('#submit').click(function() {

和:

$('#submit').click(function(e) {
   e.preventDefault();

2.复选框缺少名称

<input type="checkbox" name="..."
于 2013-08-04T16:49:30.193 回答
0
于 2013-08-04T17:16:19.377 回答