【发布时间】:2014-09-12 23:17:02
【问题描述】:
我对表格的每一行都有一个复选框。我的目标是选中/取消选中复选框并更新我的 view.py 中的数据库。很抱歉这个简单的问题,但我从几天开始就在学习 Ajax,它仍然是一个未开发的世界。这是我的代码:
HTML
...
<table>
...
<tr><td>
<form action="mytemplate.html" method="GET" id="myform">{% csrf_token %}
<input class="chktest" name="test" type="checkbox" value= "{{number}}">
</form>
</td></tr>
<tr><td>
<form action="mytemplate.html" method="GET" id="myform">{% csrf_token %}
<input class="chktest" name="test" type="checkbox" value= "{{number}}">
</form>
</td></tr>
...
</table>
**JQUERY**
<script type="text/javascript">
$(document).ready(function() {
$('table tr td .chktest').click(function() {
$.ajax({
data: $(this).serialize(),
type: $(this).attr('method'),
url: $(this).attr('action'),
success: function(response) {
// on success..
},
error: function(e, x, r) {
// on error...
}
});
return false;
});
});
</script>
**MYVIEW.PY**
...
if request.is_ajax():
number = request.GET['number']
for obj in tab_company.objects.filter(id_number=number):
obj.update(check=not obj.check)
message = "Hello!"
return HttpResponse(json.dumps({'message': message}))
这样,当我第一次单击复选框时,我会为每一行得到正确的数字。如果我在同一个复选框上再次选中它,它不会返回 False(取消选中)。我哪里错了?
【问题讨论】:
标签: javascript jquery ajax django checkbox