Django(1.8)Ajax表单BooleanField始终返回Tru

2024-04-19 14:25:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我在写一个Django表单,有两个布尔字段:

distributive = forms.BooleanField(widget=forms.CheckboxInput(
    attrs={'id':'distributive'}),required=False, initial=False)
transitivity = forms.BooleanField(widget=forms.CheckboxInput(
    attrs={'id':'transitivity'}),required=False, initial=False)

我正在视图中收集此表单中的数据:

^{pr2}$

不管我是否选中这些框,这两个字段都返回为假bools。我很困惑。在

任何洞察力都将不胜感激。谢谢!在

阿拉斯代尔有些洞察力: 我手动向表单字段添加id属性会覆盖Django的默认id设置,因此浏览器不会从字段返回任何数据。在

不幸的是,我需要通过javaScript文件访问这些表单字段,因为我使用的是Ajax。我是JavaScript和Ajax的新手,所以我不知道如何解决这个问题。在

以下是我的Ajax post请求代码:

$.ajax({
        url : "/verbquery/", // the endpoint
        type : "POST", // http method
        data : { english_gloss : $('#english_gloss').val(), person : $('#person').val(), number : $('#number').val(),
                 mode : $('#mode').val(), transitivity : $('#transitivity').val(), distributive : $('#distributive').val(),
                 voice : $('#voice').val()}, // data sent with the post request

简单地将传递性和分配性的id更改为django的默认id_传递性和id_distributive并不能将它们放入字典中。我知道这不是帖子的初衷,但任何帮助都将不胜感激。在


Tags: djangoidfalse表单requiredajaxformsval
1条回答
网友
1楼 · 发布于 2024-04-19 14:25:04

我认为这是javascript的问题,而不是Django表单。在

$('#transitivity').val()将始终为复选框返回'on'。在

请尝试以下方法:

$('#transitivity').is(':checked') ? 'on' : ''

相关问题 更多 >