3 回答
![?](http://img1.sycdn.imooc.com/545869390001b87802200220-100-100.jpg)
TA贡献2041条经验 获得超4个赞
你不需要
$('#checkbox-value').text($('#checkbox1').val());
,除非你在页面上有你没有向我们展示的元素。您不能在同一页面上定义多个具有相同 id 的元素。 (同样适用于
name
属性)。使用不同的 id,如我的代码所示,并按类/名称匹配 chekboxes。不要把
value="1"
你的复选框。将您的 jQuery 代码放在 a 中
$(function() { });
,它是$( document ).ready()
. 更多信息在这里。不要使用裸
request.POST
值,self.cleaned_data['var_name']
而是使用经过消毒的值。我认为使用大写字母的参数名称不是一个好主意(这只是一个注释,它不会影响功能)。根据 Python 的PEP 8,只有类应该以大写字母开头。
前端:
<input type="checkbox" name="Visual" id="checkbox1" class="checkbox-js-trigger-class">
<input type="checkbox" name="Tuberculosis" id="checkbox2" class="checkbox-js-trigger-class">
<input type="checkbox" name="Skin" id="checkbox3" class="checkbox-js-trigger-class">
<script type="text/javascript">
$(function() {
$(".checkbox-js-trigger-class").on("change", function(){
var new_val = $(this).is(':checked') ? 1 : 0;
$(this).val(new_val);
});
});
</script>
后端:
最好使用Model Form:
class StudentUserMedicalRecordForm(ModelForm):
class Meta:
model = StudentUserMedicalRecord
fields = ['Visual', 'Tuberculosis', 'Skin']
![?](http://img1.sycdn.imooc.com/54584cfb0001308402200220-100-100.jpg)
TA贡献1801条经验 获得超8个赞
复选框输入实际上有点奇怪,并且与您认为它们的工作方式不同。
当复选框被更改时,您不需要 jQuery 来处理这种情况。浏览器和 HTML 会为您处理。(有点像当用户专注于 input type="text" 以使字母显示在文本框中时,您不需要监听按下的键。)
相反,如果用户选中复选框,则输入将具有一个名为已选中的属性。它看起来像这样。
复选框输入标签还有另外两个属性名称和值。这些是提交表单时发送到服务器的内容。但它只发送选中复选框的名称和值对!对于未选中的复选框,它不发送任何内容。因此,如果每个复选框都有一个名称和值,您可以将其视为一个键值对。如果选中该复选框,它将向服务器发送 key=value。如果将名称指定为数组的名称,则允许单个键具有多个值。
所以想象一下你有一个这样的表格:
<input type="checkbox" name="disease[]" value="tuberculosis" checked>
<input type="checkbox" name="disease[]" value="chickenpox" checked>
<input type="checkbox" name="disease[]" value="smallpox">
<input type="checkbox" name="needs_medicine" value="true" checked>
<input type="checkbox" name="recovered" value="whatevervalue">
提交该表单后,服务器将收到类似“disease=[tuberculosis,chickenpox]&needs_medicine=true”的信息
请注意,天花和恢复没有提及,因为它们没有被检查。另请注意,将什么作为不是多选复选框的复选框的值(在本例中为需要医学)并不是非常重要,因为发送到服务器的值将始终是复选框的值(在在这种情况下,字符串“true”)。
![?](http://img1.sycdn.imooc.com/54584f240001db0a02200220-100-100.jpg)
TA贡献1801条经验 获得超16个赞
因为你有"1"
在这里给出的默认值
<input type="checkbox" value="1" name="Visual" id="visual">
而且您的脚本中也没有引用id = "checkbox1"
或id = "checkbox-value"
引用的元素。
添加回答
举报